1.合并2个有序列表构成一个新的有序列表
法1:
l1=[1,2,3,4,5]
l2=[6,7,8,9,0]
l3=l1+l2
l3.sort()
print(l3)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
法2:
l1=list(eval(input('请输入第一个列表:')))
l2=list(eval(input('请输入第二个列表:')))
l1.extend(l2) # extend 尾部追加一个完整列表
l1.sort()
print(l1)
# 请输入第一个列表:2,3,4,5,6,7,8
# 请输入第二个列表:9,0
# [0, 2, 3, 4, 5, 6, 7, 8, 9]
2.输入一个十进制转为二进制输出
法1:
a = int(input('请输入一个十进制整数:'))
print('转为二进制为:',bin(a))
# 请输入一个十进制整数:23
# 0b10111
法2:
m = int(input('请输入一个十进制整数:'))
l1=[]
if m==0:
print('0000')
else:
while m:
m,r=divmod(m,2) # divmod 计算m对2取余得到的商和余数
l1.append(r)
l1.reverse()
print(l1)
# 请输入一个十进制整数:23
# [1, 0, 1, 1, 1]
3.编写程序实现判断列表是否为升序
l1=list(eval(input('请输入第一个列表:')))
f=1 # 标志位,默认为升序
for i in range(len(l1)-1):
if l1[i]>l1[i+1]:
f=0
break
if f:
print('升序')
else:
print('无序')
# 请输入第一个列表:9,8,7,6,4,3,2,1
# 无序
# 请输入第一个列表:1,2,3,4,5,6,7,8,9
# 升序
4.将列表前p的元素平移到列表尾部输出
法1:
import random as a
l1=a.sample(range(0,20),10)
print(l1)
p=int(input('请输入移动元素个数:'))
for i in range(p):
l1.append(l1[i])
l1=l1[p:]
print(l1)
# [14, 17, 4, 3, 13, 19, 7, 10, 5, 12, 2, 0, 18, 6, 1, 16, 9, 8, 15, 11]
# 请输入移动元素个数:6
# [7, 10, 5, 12, 2, 0, 18, 6, 1, 16, 9, 8, 15, 11, 14, 17, 4, 3, 13, 19]
法2
import random as a
l1 = a.sample(range(0, 20), 10)
print(l1)
p = int(input('请输入移动元素个数:'))
l2 = l1[0:p]
l1 = l1[p:]
l3 = l1 + l2
print(l3)
# [0, 17, 13, 6, 15, 14, 8, 10, 1, 9]
# 请输入移动元素个数:3
# [6, 15, 14, 8, 10, 1, 9, 0, 17, 13]