闲暇之余,想看看Python的世界是个什么样子,毕竟现在这门语言十分的火热,有着大量的学习资料以及参考书。今天看完了Head First Python,当然里面的大量的练习并没有完成,不过总体的感觉就是这门语言很强大,特别是对数据的处理方面好像有着很大的优势,于是开启了真正的学习之旅,这本笔记不知道能够写到那个阶段,且学且记录吧。
什么是列表
可以理解为其他编程语言中的数组,有着各种各样非常方便的操作。Python的数组十分的灵活,里面可以包含任何的数据类型,元素与元素之间可以没有任何的关系,也没有类型的依赖。
定义列表
使用方括号[]
来表示列表,例如:
name = ['Bob','Peter',3,['Hello','World']]
访问列表元素
使用列表变量加上索引:
name[2]
注意索引从0开始,和其他语言的数组类似,2表示列表中第三个元素。
修改列表元素
name[0]="Frank"
添加列表元素
末尾添加
name.append("Godlike")
末尾添加一个新元素。
插入到具体位置
name.insert(2,"Darrin")
在第三个元素前插入。
删除列表中的元素
删除指定位置的元素
del name[2]
删除列表中第三个元素。
删除最后一个元素
del_element=name.pop()
删除最后一个元素,并且可以直接使用。当然pop也可以删除任何位置的元素,需要指定具体位置。
根据值删除
name.remove("Frank")
删除列表中值是
Frank
的元素。
对列表进行操作
排序 - sort()
new_list = ['张三','李四','Frank','Darrin'] print(new_list) new_list.sort() print(new_list)
输出:
问题:对于中英文混搭的列表,排序错乱,如何解决?
排序 - sorted()
复制一个排序后的列表,原列表保持不变。
new_list = ['张三','李四','Frank','Darrin'] another_list = sorted(new_list) print(new_list) print(another_list)
反转 - reverse()
new_list = ['张三','李四','Frank','Darrin'] new_list.reverse()
输出:
['Darrin', 'Frank', '李四', '张三']
列表的长度 - len()
length=len(name)
遍历 - for
new_list = ['张三','李四','Frank','Darrin'] for item in new_list: print(item)
部分访问 - 使用索引范围
从指定的开始位置开始遍历,到达指定位置的前一个元素结束。
new_list = ['张三','李四','Frank','Darrin'] print(new_list[1:3])
输出为:
['李四', 'Frank']
复制列表
old_list = ['张三','李四','Frank','Darrin'] new_list = old_list[:]
特殊列表
数值列表 - range()
存储一组数字,python提供很多工具,可以帮助我们有效的处理数字列表。
- 创建
numbers=list(range(1,9))
定义一组1到8的数字,注意,是到8而不是9。
- 定义步长
numbers=list(range(1,11,2)) print(numbers)
输出结果:
[1, 3, 5, 7, 9]
- 统计
numbers=list(range(1,20,3)) print(numbers) print(min(numbers)) print(max(numbers)) print(sum(numbers))
输出结果:
元组 - tuple
- 元组的元素不能修改
- 元组的创建使用小括号()
- 元组的访问和列表相同
- 元组中的元素不能删除
- 如果元组中只有一个元素,需要添加一个逗号结尾
tup = (10,15,20) print(tup) tup = (20,30,40) print(tup) # tup[0] = 60 # print(tup) # Traceback (most recent call last): # File "list.py", line 86, in <module> # tup[0] = 60 # TypeError: 'tuple' object does not support item assignment
字典 - dictionary
字典是一系列key-value的匹配列表,每一个key都和一个value匹配,与Key相关的值可以使任何的python对象。字典使用{}来定义,key和value之间使用”:”进行分隔。
print('字典练习') dic={'color':'red','age':25,'hobby':['basketball','football']} print(dic) #按key取得value print(dic['color']) #修改字典中的对象,没有则添加 dic['color'] = 'blue' dic['name'] = 'bob' print(dic) #删除 del dic['name'] print(dic) #遍历字典 for key,value in dic.items(): print('\nKey: ' + key) print('value: ' + str(value)) #遍历字典中的key for key in dic.keys(): print(key.title()) #字典中存储字典 - JSON plants={ 'address':{ 'city':'Shanghai', 'street':'zhangjiang', }, 'products':{ 'name':'pc', 'price': 1234, }, } print(plants['address']['city'])
集合 - set()
类似于列表,但是每个元素必须唯一。
集合是无序的,不能通过索引进行访问。
print('集合测试') set1=set('good morning') set2=set('good afternoon') print(set1) print(set2) print(set1 & set2) #交集 print(set1 | set2) #并集 print(set1 - set2) #差集 print(set1 ^ set2) #对称差集
测试结果:
结语
基本的操作语句就不详细的做笔记了,基本上和其他的编程语言没有什么太大的区别。
接下来学习函数和类。