python字典遍历(Python字典遍历的方法有哪些)
python怎样遍历.py的内容?
列表的遍历
方法一:通过for循环
li = [i for i in range(10)]
for i in li:
print(i)
方法二:通过while循环
# 虽然for循环已经很好用了,但是在有些情况下,使用while循环可以更灵活
# 只需要将判断条件设置为小于列表长度,即可完成列表通过while循环的遍历
li = [i for i in range(10)]
i = 0
while i len(li):
print(li[i])
i += 1
方法三:配合enumerate使用,同时获取列表的索引
li = [i + 1 for i in range(10)]
# 此时,i为一个元组,元组的第一个元素为索引,第二个元素为原列表的元素
# 因此,在遍历列表的同时,需要同时获取坐标的情况下,可以配合enumerate()一起使用
for i in enumerate(li):
print(i)
字典的遍历
字典的遍历和列表有一些不同,因为字典有键和值两个关键部分。默认的遍历情况,是遍历字典的键,当然,可以通过字典的键取得值,也可以直接遍历值,或者直接遍历键和值。
方法一:直接使用for循环
直接使用for循环对一个字典进行遍历,默认取得的是字典的键
dt = {i: i + 1 for i in range(10)}
for i in dt:
print("字典的键:", i) # 字典的键
print("字典的值:", dt[i]) # 字典的值
方法二:遍历dict.keys()
这种方法与方法一的效果其实是一样的,同样是获取字典的键
dt = {i: i + 1 for i in range(10)}
for i in dt.keys():
print("字典的键:", i) # 字典的键
print("字典的值:", dt[i]) # 字典的值
方法三:遍历dict.values()
这种方法与方法一和二很不相同,因为它只获取了字典的值
dt = {i: i + 1 for i in range(10)}
# 这是很特殊的方法,因为它没有获取字典的键
for i in dt.values():
print("字典的值:", i) # 此时i不再是字典的键,而是值
方法四:遍历dict.items()
这种方法一般来说要更好,因为它同时获取到了字典的键和值,而且性能上要高于先获取键,再通过键获取对应的值
dt = {i: i + 1 for i in range(10)}
for i in dt.items():
print("字典的键值对:", i)
print("字典的键:", i[0])
print("字典的值:", i[1])
总结
1,列表的遍历比较简单,除了配合enumerate()使用,可以同步获取索引以外,并没有特别值得纠结的。
2,字典的遍历方法比较多,其中第四种是能适用于一切情况的,前两种也可以适用于一切情况,但是如果你同时需要获取键和值,性能不如第四种要好。第三种比较特别,除非你真的只需要字典的值,否则它在多数情况下是不能够满足需求的。
Python字典键值对的添加和遍历
添加键值对
首先定义一个空字典
dic={}
直接对字典中不存在的key进行赋值来添加
dic['name']='zhangsan'
dic
{'name': 'zhangsan'}
如果key或value都是变量也可以用这种方法
key='age'
value=30
dic[key]=value
dic
{'age': 30. 'name': 'zhangsan'}
这里可以看到字典中的数据并不是按先后顺序排列的,如果有兴趣,可以搜一搜数据结构中的——哈希表
从python3.7开始,字典按照插入顺序,实现了有序。修改一个已存在的key的值,不影响顺序,如果删了一个key后再添加该key,该key会被添加至末尾。标准json库的dump(s)/load(s)也是有序的
还可以用字典的setdefault方法
dic.setdefault('sex','male')
'male'
key='id'
value='001'
dic.setdefault(key,value)
'001'
dic
{'id': '001', 'age': 30. 'name': 'zhangsan', 'sex': 'male'}
python3字典遍历
(1)遍历key值
在使用上,for key in a和 for key in a.keys():完全等价。
(2)遍历value值
(3)遍历字典项
(4)遍历字典健值
在使用上for key,value in a.items()与for (key,value) in a.items()完全等价
python-字典
1、字典:
? ? ? 两大特点:无序,键唯一
? ? ? 无序存储,键值对的形式存储数据
? 键是唯一不可修改的,不能用列表做键
2、python中不可变类型:整形,字符串,元组
? ? 可变类型:字典,列表
3、字典中方法:
增加:
dic1 = {'name':'alex'}
dic1 = ['age'] =18
*dic1 = {'age':18,'name':'alex'}
? ? ? dic1.setdefault() 键存在,不改动,返回字典相应键对应的值,键不存在,在字典中增加新的键值对,并返回相应的值
查找:
? ? ? ? 通过键查找
? ? ? ? ? dic1.keys()打印字典中所有键?
? #dict1.keys['name','age']? --转换成列表:list(dic1.keys())
? ? ? ? ? dic1.values()打印字典中所有值
? ? ? ? ? dic1.items()打印所有键值对
修改:
? ? ? ? ? 直接赋值
dic3= {'name':'alex','age':18}
dic4 = {'sex':'male','age':36}
? ? ? ? ? dic3.update(dic4)? ? #有相同的key,值会修改
删除:
? ? ? ? ? dic.clear()? ? #清空字典
? ? ? ? ? del dic['name'] #删除字典中指定键值对
? ? ? ? ? dic.pop('age')#删除字典中指定键值对,并返回该键值对的值
? ? ? ? ? dic.popitem()? #随机删除键值对,并以元组方式返回
其他操作涉及的方法:
dic1 =dict.formkeys(['host1','host2'],'test')#{'host1':'test','host2':'test'}
dic1 =dict.formkeys(['host1','host2','host3'],['test1','test2'])#{'host1':['test1','test2'],'host2':['test1','test2'],'host3':['test1','test2']}
dic1['host2'][1] = 'test3'? ?#{'host3':['test1''test3'],'host2':['test1''test3'],'host1':['test1''test3']}
? ? ? 字典的嵌套:
? ? ? 字典的排序:
? ? ? 字典的遍历:
字符串的操作
a = '123'
b= 'abc'
c = a+b #123abc
c='****'.join([a,b])#123****abc
st = 'hello kitty{name} is {age}'
? ? st.count('l')? ? #2? ? 统计元素个数
? ? ? st.captialize() #Hello kitty 首字母大写
? ? ? st.center(50,'-')#--------hello kitty --------居中
? ? ? st.endswith('tty3')#判断是否以某个内容结尾
? ? ? st.startswith('he')#判断是否以某个内容开头
? ? ? st.find('t') #8? 查找第一个元素,并返回索引,不存在是返回-1
? ? ? st.format(name? = 'alex',age= 37)#hello kitty alex is 37
? ? ? st.format_map({'name' :'alex','age':27})#hello kitty alex is 27
? ? ? st.index('t') #8 返回索引,找不到报错
‘ab'.isalnum()
'123'.isdigit()