List练习题

list基础题

去重保留顺序

方法1:
a = [3, 2, 1, 4, 2, 6, 1]
b = []
for i in a:
    if i not in b:
          b.append(i)
print(b)

方法2:
a = [3, 2, 1, 4, 2, 6, 1]
print(sorted(set(a),key=lambda x:a.index(x))) # [3, 2, 1, 4, 6]



# 找出列表中出现次数最多的元素
a = [
    'my', 'skills', 'are', 'poor', 'I', 'am', 'poor', 'I',
    'need', 'skills', 'more', 'my', 'ability', 'are',
    'so', 'poor'
]
# 方法1:常规解决思路
dic1={}
for i in a:
    if i not in dic1:
        dic1[i]=a.count(i)
print(dic1)
print(list(dic1.items()))
print(sorted(list(dic1.items()),key=lambda x:x[1])[-1][0])

# 方法2:一行代码解决
'''使用max()函数解决'''
print(max(a,key=lambda x:a.count(x)))

'''
列表查找元素出现的位置可以用list.index()方法,元素不在列表中的时候会抛异常
(注意的是list 查找没有字符串中的 str.find() 和 str.rfind()方法)
'''
A1 = [1, "aa", 2, "bb", "val", 33]
A2 = [1, "aa", 2, "bb"]
if 'val' not in A1:
    print(-1)
else:
    print(A1.index("val"))  # 9
'''[[1,2],[3,4],[5,6]] 得到 [1, 2, 3, 4, 5, 6]'''
a = [[1,2],[3,4],[5,6]]

li=[]
for i in a:
    for j in i:
        li.append(j)
print(li)

# 列表推导式
print([j for i in a for j in i])
''' L = [1, 2, 3, 5, 6],如何得出 '12356'''

L = [1, 2, 3, 5, 6]
# print(''.join(L)) # 直接join会提示被拼接的对象不是str,因此要先将被拼接的元素转化生

L1=[str(i) for i in L]
print(''.join(L1)) # 12356

a = [“a”, “b”, “c”]
b = [1, 2, 3]
如何得到 {‘a’: 1, ‘b’: 2, ‘c’: 3}
zip()函数用于将可迭代的对象作为参数,将对象中的对应元素打包成一组元祖,返回由这些元祖组成的对象。
zip(iter1 [,iter2 […]]) --> zip object

a = ["a", "b", "c"]
b = [1, 2, 3]
# 方法1
res=list(zip(a,b))# [('a', 1), ('b', 2), ('c', 3)]
print(type(zip(a,b)))
dic1={}
for i in res:
    dic1[i[0]]=i[1]
print(dic1)

# 方法2:
dic2={}
for i,j in res:
    dic2[i]=j
print(dic2)

列表按age从小到大排序
如下列表
people = [
{“name”: “yoyo”, “age”: 20},
{“name”: “admin”, “age”: 28},
{“name”: “zhangsan”, “age”: 25},
]
按年龄age从小到大排序

people = [
    {"name": "yoyo", "age": 20},
    {"name": "admin", "age": 28},
    {"name": "zhangsan", "age": 25},
]
print(sorted(people,key=lambda x:x['age']))
# [{'name': 'yoyo', 'age': 20}, {'name': 'zhangsan', 'age': 25}, {'name': 'admin', 'age': 28}]

现有 nums = [2, 5, 7] ,如何在该数据最后插入一个数字 9 ,以及如何在2后面插入数字0

nums = [2, 5, 7]
# 在数据列最后插入一个数字9
nums.append(9)
print(nums)

# insert(index,object) ,nums.index(2)为2的索引
nums.insert(nums.index(2)+1,0)
print(nums)

有个列表a = [1, 2, 3, 4, 5, 6, 7, 8, 9],如何打乱列表a的顺序,每次得到一个随机输出列表
random.shuffle(object) 该函数用于将序列的所有元素随机排序

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
import random
random.shuffle(a)
print(a) # 随机输出列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值