Python操作列表(需要注意的部分)
- 对于列表a、b,注意区分赋值a=b和切片复制a=b[:]
赋值:两者发生关联,对应的是同一个内存,修改其中一个,另一个随之同步改变;
复制:两个独立的表,互不影响。
- python中的布尔类型:True、False首字母大写,否则不能识别
>>>user=['admin','bob','join']
>>>user.sort(reverse=true) #将列表按首字母逆序排列
>>>print(user)
NameError: name 'true' is not defined #报错
将true改为True执行代码后输出:
['join','bob','admin']
- 列表解析
列表解析将for循环等和创建新元素的代码合并成一行,并自动附加新元素,使代码更加精炼
>>>squares = [] #生成列表
>>>for value in range(1,11):
>>> squares.append(value**2)
>>>print(squares)
输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
使用列表解析实现上述功能:
>>>squares=[value**2 for value in range(1,11)]
>>>print(squares)
输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
例:比较两组列表元素是否重复,且忽略大小写
>>>current_users=['admin','Bob','join','lucy','jeck']
>>>new_users=['Admin','bob','clear']
>>> for user in new_users:
>>> if user.lower() in [users.lower() for users in current_users]: #将两组列表同时转换为小写再对比
>>> print("please input the other username!")
>>> else:
>>> print("ok,the username can be used!")
输出: please input the other username!
please input the other username!
ok,the username can be used!
考虑列表current_users内容是否被修改:
>>>print(current_users)
输出: ['admin','Bob','join','lucy','jeck'] #可以判断出上述列表解析没有修改current_users参数
- 对于元组(键/值对)
Python不关心键/值对的存储顺序,而只跟踪键和值之间的关联关系
在向元组添加新的键/值对时,添加的元素随机排列;
- 嵌套
1.当需要在字典中将一个键关联到多个值时,就可以在字典中嵌套一个列表
>>> favorite_languages = {
>>> 'jen': ['python', 'ruby'],
>>> 'sarah': ['c'],
>>> 'edward': ['ruby', 'go'],
>>> 'phil': ['python', 'haskell'],
>>> }
2.字典也可以嵌套字典
例:>>> users = {
>>> 'aeinstein': {
>>> 'first': 'albert',
>>> 'last': 'einstein',
>>> 'location': 'princeton',
>>> }
>>> }
...
浙公网安备 33010602011771号