
闲暇之余,想看看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)
输出:
2017-12-15_10-36-43.png
问题:对于中英文混搭的列表,排序错乱,如何解决?
网络答案:http://gerry.lamost.org/blog/?p=338
-
排序 - 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))
输出结果:
2017-12-15_12-59-08.png
-
-
元组 - 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) #对称差集
测试结果:
2017-12-15_13-42-02.png
结语
基本的操作语句就不详细的做笔记了,基本上和其他的编程语言没有什么太大的区别。
接下来学习函数和类。
程序代码
# encoding=gb2312
print('定义一个新的列表')
name = ['Bob','Peter',3,['Hello','World']]
print(name)
print('访问列表元素')
print(name[2])
print('修改列表元素')
name[0]='Frank'
print(name)
print('添加列表元素 - 末尾添加')
name.append('Godlike')
print(name)
print('添加列表元素 - 插入到具体位置')
name.insert(2,'Darrin')
print(name)
print('删除列表中的元素 - 删除指定位置的元素')
del name[2]
print(name)
print('删除列表中的元素 - 删除最后一个元素')
del_element=name.pop()
print(name)
print(del_element)
print('删除列表中的元素 - 根据值删除')
name.remove('Frank')
print(name)
print('排序 - sort()')
new_list = ['张三','李四','Frank','Darrin']
print(new_list)
new_list.sort()
print(new_list)
print('排序 - sorted()')
new_list = ['张三','李四','Frank','Darrin']
another_list = sorted(new_list)
print(new_list)
print(another_list)
print('反转 - reverse()')
new_list = ['张三','李四','Frank','Darrin']
new_list.reverse()
print(new_list)
print('遍历 - for')
new_list = ['张三','李四','Frank','Darrin']
print(new_list[1:3])
length = len(new_list)
print(length)
for item in new_list:
print(item)
print('复制列表')
old_list = ['张三','李四','Frank','Darrin']
new_list = old_list[:]
print(new_list)
################特殊列表############################
print('数值列表 - range()')
numbers=list(range(1,9))
print(numbers)
print('数值列表 - range() - 定义步长')
numbers=list(range(1,11,2))
print(numbers)
print('数值列表 - range() - 统计')
numbers=list(range(1,20,3))
print(numbers)
print(min(numbers))
print(max(numbers))
print(sum(numbers))
print('元组练习')
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
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'])
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) #对称差集
网友评论