目录
1.合并两个有序序列构成一个有序列表
代码如下:
list1 = list(eval(input("请输入有序列表list1:")))
list2 = list(eval(input("请输入有序列表list2:")))
list1.extend(list2)
list1.sort()
print(list1)
补充:
- evel()方法:全局函数,用来执行一个字符串表达式,并返回表达式的值
- extend()方法:用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
- sort()方法:函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数
运行结果:
2.编写程序判断列表是否为升序
代码如下:
方法一:
list3 = list(eval(input("请输入一个数字列表(用逗号隔开):")))
f = 1 # 标志位
for i in range(len(list3) - 1):
if list3[i] > list3[i + 1]: # 判断是否是有序的
f = 0
break
if f:
print("是为升序")
else:
print("不是升序")
补充:我们创建标识符 f 对列表内容进行标记,如果当列表中有前一个元素大于后一个元素的时候就表明此时列表并不是升序的,并改变标识符f的值。
运行结果:
3.输入一个十进制转换为二进制输出
方法一:
代码如下:
num = int(input("请输入一个十进制数:"))
m = ''
while num:
m += str(num % 2)
num //= 2
print(m[::-1])
方法二:
m = int(input('请输入一个十进制整数:'))
list1 = []
i = 0
if m == 0:
print('0000')
else:
while m:
m, r = divmod(m, 2) # divmod计算m%2 得到商和余数
list1.append(r)
list1.reverse() # 逆序存储
print(list1)
运行结果如下:
4.将列表中的前p个元素到尾列表
代码如下
方法一:
list5 = list(eval(input("请输入一个数字列表(用逗号隔开):")))
p = int(input("请输入要平移列表的前几个元素:"))
while p > len(list5):
p = int(input("p必须小于列表的长度:"))
print(list5)
for i in range(p):
list5.append(list5[0])
list5.remove(list5[0])
print(list5)
方法二:
import random
list1 = random.sample(range(0, 50), 10)
print(list1)
p = int(input('请输入移动下标数值:'))
for i in range(p): # 移动0-p下标数据
list1.append(list1[i])
list1 = list1[p:] # 从p索引开始切片后覆盖原列表
print(list1)
运行结果:
文章出处登录后可见!
已经登录?立即刷新