Python【列表 字典 元组】
列表
列表用中括号[ ]把各种数据框起来,每一个数据叫作“元素”。
每个元素之间都要用英文逗号隔开
各种类型的数据(整数/浮点数/字符串)
————————————————————————————
从列表提取单个元素
每个元素都有自己的位置编号(即偏移量)
1.偏移量是从0开始的
2.列表名后加带偏移量的中括号,就能取到相应位置的元素
students = ['小明','小红','小刚']
print(students[0])
小明
—————————————————————————————
从列表提取多个元素
用冒号来截取列表元素的操作叫作切片
将列表的某个片段拿出来处理
列表切片口诀
左右空,取到头;左要取,右不取
#冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素
#冒号左边数字对应的元素要拿,右边的不动
>>> list2 = [5,6,7,8,9]
>>> print(list2[:])
[5, 6, 7, 8, 9]
>>> print(list2[2:])
[7, 8, 9]
>>> print(list2[:2])
[5, 6]
>>> print(list2[1:3])
[6, 7]
>>> print(list2[2:4])
[7, 8]
————————————————————————
切片和偏移量对比
偏移量取到的是列表中的元素,而切片则是截取了列表的某部分
#使用偏移量提取单一元素,结果显示:
>>> students = ['小明','小红','小刚']
>>> print(students[2])
小刚
#使用切片,即使结果仍然只有一个元素,但显示为列表:
>>> print(students[2:])
['小刚']
特别地,a,b,c=students,也可以提取出列表中的元素,变量分别用逗号隔开,且变
量的数量与列表元素个数一致,最终列表元素会分别赋值给变量,例如
appetizer = ['话梅花生','拍黄瓜','凉拌三丝']
a,b,c=appetizer print(a)
print(b)
print(c)
print(a,b,c) #话梅花生
#拍黄瓜
#凉拌三丝
#话梅花生 拍黄瓜 凉拌三丝
————————————————————————————
给列表增加/删除元素
append()函数
append()给列表增加元素,每次只能增加一个元素
报错信息
>>> list3.append(4,5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
>>> list3 = [1,2]
>>> list3.append(3)
>>> print(list3)
[1, 2, 3]
>>> list3.append([4,5]) #列表内部支持嵌套,单个列表也会视为一个元素
>>> print(list3)
[1, 2, 3, [4, 5]]
————————————————————————————
合并列表
把A和B的成绩合并成一个列表,并按照从低到高的顺序排序
list1 = [91, 95, 97, 99] #A
list2 = [92, 93, 96, 98] #B
# 把 A 组成绩赋值给一个新列表,用来存合并的成绩——这个细节要注意!
list3 =list1
list3.extend(list2) #list3 = list1 + list2也可以
print(list3)
[91, 95, 97, 99, 92, 93, 96, 98]
list3.sort()
print(list3)
[91, 92, 93, 95, 96, 97, 98, 99]
列表排序
————————————————————————————
del语句
students = ['小明','小红','小刚','小美']
del students[3] #语法是:del 列表名[元素的索引]
print(students)
['小明', '小红', '小刚']
既能删除一个元素,也可以删除多个
(原理和切片类似,左取右不取)
###############################################
数据类型:字典
1.有名称;
2.要用=赋值;
3.用逗号作为元素间的分隔符
字典的外层是大括号{ }
字典的元素是由一个个键值对构成的,用英文冒号连接
scores = {'小明':95,'小红':90,'小刚':90}
字典中的键具备唯一性,而值可重复
扩展知识:len()函数
得出一个列表或者字典的长度(元素个数)
>>> students = ['小明','小红','小刚']
>>> scores = {'小明':95,'小红':90,'小刚':90}
>>> print(len(students))
3
>>> print(len(scores))
3
字典提取元素
字典靠的是键
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明']) #print字典名[字典的键]
95
给字典增加/删除元素
删除
del 字典名[键]
增加
字典名[键] = 值
scores = {'小明':95,'小红':90,'小刚':90}
del scores['小刚']
scores['小刚'] = 92
scores['小美'] = 85
print(scores)
{'小明': 95, '小红': 90, '小刚': 92, '小美': 85}
——————————————————————————
扩展
Python字典 items()函数以列表返回可遍历的(键, 值) 元组数组。
语法:
dict.items()
列子:
scores = {'语文':89, '数学':95, '英语':80}
print(scores.items())
dict_items([('语文', 89), ('数学', 95), ('英语', 80)]) #列表包含元组数组
遍历字典项
for a in scores.items():
print(a)
('语文', 89) #元组数组
('数学', 95)
('英语', 80)
遍历字典值
for a,b in scores.items(): #写成 for (a,b) in scores.items(): 或for a, b in scores.items():
print(a,b)
语文 89
数学 95
英语 80
#####################################################
列表和字典的异同
不同点
元素是有自己明确的“位置”的,
所以即使看似相同的元素,
只要在列表所处的位置不同,
它们就是两个不同的列表
>>> students1 = ['小明','小红','小刚']
>>> students2 = ['小刚','小明','小红']
>>> print(students1 == students2)
False
字典相比起来就显得随和很多,
调动顺序也不影响。
因为列表中的数据是有序排列的,
而字典中的数据是随机排列的
>>> scores1 = {'小明':95,'小红':90,'小刚':100}
>>> scores2 = {'小刚':100,'小明':95,'小红':90}
>>> print(scores1 == scores2)
True
总结:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值
————————————————————————————————————
相同点
1.修改元素,可以用赋值
list1 = ['小明','小红','小刚','小美']
list1[1] = '小蓝'
print(list1)
['小明', '小蓝', '小刚', '小美']
dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)
{'小明': '女'}
#del语句通常是用来删除确定不需要的键值对
2.支持任意嵌套
列表嵌套
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3]) #先判断是列表第几个元素,再判断列表中要取出元素的偏移量
小芳
字典嵌套
scores = {
'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
}
print(scores['第二组']['小芳']) #先找到字典的键,再找出要取出的值对应的键
88
总结:最外层是什么就是什么嵌套,提取多级嵌套的列表/字典时,要一层一层地取出来
任意嵌套的列子
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
print(students['第一组'][2])
小刚
print(scores[0]['小刚'])
100
##########################
元组tuple
小括号来包的
元组和列表都是序列,提取的方式也是偏移量
支持任意的嵌套
tuple1 = ('A','B')
list2 = (('A','B'),('C','D'),('E','F'))
print(tuple1[0])
A
print(list2[1][1])
D
*取出 反面角色 狼 *
townee = [
{'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
'丑小鸭','坚定的锡兵','睡美人','青蛙王子',
[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]
]
print(townee[5][1]['反面角色'])
狼
##################################################
# 知识1:一种新的列表生成方式
num1 = [1,2,3,4,5] # 想一想,如果用这个方法生成一个1-100的列表……
num2 = list(range(1,6))
print(num1)
print(num2)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
# 知识2:extend 的新用法
num2.extend(['ABCDE'])
num2.extend('ABCDE') # extend后面是列表的话会将其合并,后面是字符串的话会将每个字符当成一个列表中的元素。
print(num2)
[1, 2, 3, 4, 5, 'ABCDE', 'A', 'B', 'C', 'D', 'E']
# 知识点3:列表生成式
list1 = [i for i in range(3)] # 规定列表中元素的范围
print(list1)
[0, 1, 2]
list2 = [m+n for m in ['天字', '地字'] for n in '一二'] # 列表元素可以是组合,分别规定范围。
print(list2)
['天字一', '天字二', '地字一', '地字二']
list3 = [n*n for n in range(1,11) if n % 3 == 0] # 元素既可规定范围,也可附加条件。
print(list3)
[9, 36, 81]
# 假设用普通的方法来生成上面的列表:
'''
list1 = []
for i in range(3):
list1.append(i)
print(list1)
list2 = []
for m in ['天字', '地字']:
for n in '一二':
list2.append(m+n)
print(list2)
list3 = []
for i in range(1,11):
if i % 3 == 0:
list3.append(i*i)
print(list3)
'''
Python【列表 字典 元组】的更多相关文章
- python 列表,字典,元组,字符串,QuerySet之间的相互转换
1. 列表转换成字典list1 = ['key1','key2','key3']list2 = ['value1','value2'] dict1 = zip(list1,list2) # dict( ...
- Python列表、元组、字典和字符串的常用函数
Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...
- python列表与元组的用法
python列表与元组的用法 目录: 列表的用法: 1.增 append + extend 2.删 del remove 3.改 insert 4.查 index 5.反向 ...
- (转)python 列表与元组的操作简介
python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...
- Python: 列表,元组,字典的区别
Python中有3种内建的数据结构:列表,元组和字典 1.列表 list是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中项目应该包括在方括号中,这样python就知道是在指明 ...
- Python 列表、元组、字典及集合操作详解
一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...
- <转>python列表、元组、集合、字典、json相互转换以及其他基础入门
列表元组转其他 # 列表转集合(去重) list1 = [6, 7, 7, 8, 8, 9] set(list1) # {6, 7, 8, 9} #两个列表转字典 list1 = ['key1','k ...
- python列表,元组,字典,集合的比较总结
这四个都是python中的序列,用于存放数据,他们区别总结如下: 列表list 元组tuple 字典dictionary 集合set 是否可变 可变 不可变 可变 可变 是否有序 有序 有序 无序 ...
- python列表、元组、字典、集合的简单操作
一.列表.元组 1.常用操作函数 #Author:CGQ import copy #列表 ''' names=["ZhangYang","XiaoHei",&q ...
随机推荐
- 1-7HSB色彩模式
http://www.missyuan.com/thread-350721-1-1.html HSB色彩模式色相hue.饱和度saturation.明度brightness 在HSB模式中,S和B的取 ...
- Flask-CBV模式
Flask中的CBV模式 ''' flask中的CBV模式: (1)导入views模块: from flask import views (2)定义类,继承views.MethodView类: cla ...
- 5.3.3 自定义writable和RawComparatorWritable
5.3.3 自定义writable (1)构造员工writable Hadoop虽然已经实现了一些非常有用的Writable,而且你可以使用他们的组合做很多事情,但是如果你想构造一些更加复杂的结果,你 ...
- 谷歌浏览器试调网页 多出font标签
突然发现一些按钮的点击功能失效,在控制台发现该a标签中多出个font标签,导致文字区域不能触发到a标签 就算a标签宽高设置百分百 也没用. 经测试不同的浏览器情况不一样 safari就不会出现这种情况 ...
- 解决ScrollView中Recyclerview显示不全,滑动不流畅的问题
这个问题经常会碰到,看了下网上关于这个问题的解决方案,有很多都是复制粘贴的,并不能根本解决问题 比较有效的一种方案是在Recyclerview的外层套一个RelativeLayout 然后设置recy ...
- java课后实验性问题6
1.继承条件下的构造方法调用. class Grandparent { public Grandparent(){ System.out.println("GrandParent Creat ...
- SQL中instr和like的使用区别
1.instr函数 instr函数是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置,如果在源串中没有找到子串,则返回0. instr函数定义如下: /* * 返回子 ...
- vue 项目 使用sass以及注意事项
vue 项目 使用sass以及注意事项 1,安装依赖: npm install node-sass --save-dev npm install sass-loader --save-dev 注: 通 ...
- kotlin之map委托
fun main(arg: Array<String>) { val map = mapOf("name" to "tom", ) val user ...
- kotlin标准委托之惰性装载
lazy函数,接受一个lambda表达式作为参数,返回一个Lazy<T> 类型的实例,这个实例可以作为委托,实现惰性加载属性;第一次调用get时,将会执行从lazy函数传入的lambda表 ...