关于列表的应用
时间:2022-07-25
本文章向大家介绍关于列表的应用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.列表合并保留最大长度
import itertools
w, x, y, z = [], [1], [2, 3], [4, 5, 6]
longest_wxyz = itertools.zip_longest(w, x, y, z)
print(list(longest_wxyz))
结果: [(None, 1, 2, 4), (None, None, 3, 5), (None, None, None, 6)]
2.列表元素替换
lst = ['1','2','3']
rep = ['4' if x == '2' else x for x in lst]
print(rep)
结果: ['1', '4', '3']
3.列表进行去重操作
一般的去重操作后是出现乱序的情况
t=['8','7','2','中国','China','中国','1','4']
t=list(set(t))
print(t)
结果: ['China', '4', '中国', '8', '1', '7', '2']
如果既想实现去重,又能保持原有的顺序,可以使用下面的方法
temp=list(set(t))
temp.sort(key=t.index)
print(temp)
结果: ['8', '7', '2', '中国', 'China', '1', '4']
4.列表推导式
#方法1:传统方法
import time
t0=time.time()
ind=[]
for i in range(10000):
sqr_values=i*i
ind.append(sqr_values)
t1=time.time()
print(t1-t0)
0.004066944122314453
#方法2:列表推导式
import time
t0=time.time()
sqr_value=[i*i for i in range(10000)]
t1=time.time()
print(t1-t0)
0.0020749568939208984
5.如何让列表所有元素首字母变大写?
问题:
c=['zz','yy','xx']
c[0:2]=c[0:2].capitalize()
提示错误:
AttributeError: 'list' object has no attribute 'capitalize'
解决:
#方法一
c = ['zz','yy','xx']
c = [string.capitalize() for string in c]
#方法二
c = ['xx', 'yy', 'zz']
c = ' '.join(c).title().split()
#方法三
c = ['xx', 'yy', 'zz']
c = ' '.join(c).title().split() #['Xx', 'Yy', 'Zz']
#方法四
[_.capitalize() for _ in c]
#方法五
c = [_.title() for _ in c]
6.如何合并列表中key相同的字典?
#现有list
list1 = [{a: 123}, {a: 456},{b: 789}]
#合并成
list2 = [{a: [123,456]},{b: [789]}]
from collections import defaultdict
lst = [{'a': 123}, {'a': 456},{'b': 789}]
dic = {}
for _ in lst:
for k, v in _.items():
dic.setdefault(k, []).append(v)
print [{k:v} for k, v in dic.items()]
7.去除列表中的n 和空字符
s=['n', 'magnet:?xt=urn:btih:060C0CE5CFAE29A48102280B88943880689859FCn']
上面是目标代码,一个列表,中间有n,我们现在将其去掉
s=[x.strip() for x in magnet_link]
运行会发现结果为
s=['', 'magnet:?xt=urn:btih:060C0CE5CFAE29A48102280B88943880689859FC']
离我们的要求越来越近了
s=[x.strip() for x in magnet_link if x.strip()!='']
好了,结果出来了
s=['magnet:?xt=urn:btih:060C0CE5CFAE29A48102280B88943880689859FC']
8.字符串和列表互相转换
字符串转为列表
str1 = 'a1b2' ls1 = [str(i) for i in str1]
列表转为字符串
ls2 = ['1','a','2','b'] str2 = ''.join(ls2)
同步遍历多个列表 使用zip()函数
name_list = ['张三', '李四', '王五']
age_list = [54, 18, 34]
for name, age in zip(name_list, age_list):
print(name, ':', age)
运行结果:张三 : 54 李四 : 18 王五 : 34
利用下标
list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd', 'f']
n = 0 for each in list1:
print(each, list2[n])
n += 1
运行结果: 1 a 2 b 3 c 4 d 5 f
- AI 泡沫前,我们怎么办?中美两国人工智能产业发展全面解读
- 养车记账本小程序开发实例
- 基于图像识别的自动化
- 主从同步中的关键技术解析
- 腾讯织云:DevOps 流水线应用平台践行之路
- 腾讯云 GAME-TECH 沙龙干货回顾:与腾讯云携手出海
- 陈杰:无服务器架构,让云端开发更纯粹
- 王磊:AI 时代物流行业的 OCR 应用
- 张兴华:云端架构助力企业快速成长
- 腾讯云GAME-TECH沙龙干货回顾:腾讯游戏云全球化实践
- 基于内容关键性的高效 FEC 抗网络丢包算法
- 腾讯云GAME-TECH沙龙干货回顾:三七互娱游戏全球化运营心得分享
- 《实现模式》读书总结
- 腾讯云 GAME-TECH 沙龙干货回顾:Eyougame 海外发行实践分享
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法