Python-day2
来源:互联网 发布:天融信数据库审计 编辑:程序博客网 时间:2024/04/29 18:30
列表
1.列表赋值:
list_test = ["cristiano ronaldo","Lionel Messi"]print(list_test)['cristiano ronaldo', 'Lionel Messi']
2.具体取某个“下标”的值,例取罗总裁的值:
print(list_test[0])cristiano ronaldo
注:由于二进制从0开始,所以下标顺序第一个值是从0开始,第二个从1开始
3.取两个值,罗总裁和煤球王:
print(list_test[0:2])['cristiano ronaldo', 'Lionel Messi']
注:如果按照下标的位置,煤球王所在的值应该是1,但是在Python中末尾值得数字必须往后多写一位,故而末尾位置写到2,这种用法也叫“切片”
4.取最后一个值:(尾可以不用写)
print(list_test[-1])Lionel Messi
5.取最后两个值:
print(list_test[-2:])['cristiano ronaldo', 'Lionel Messi']
注:不管是取前面的值还是后面的值,Python都是从左边开始往右边取值,所以冒号左边的下标必须从首开始写!
例:取值写法都是一样的
list_test = ["cristiano ronaldo","Lionel Messi","Kaka"]print(list_test[-3:-1])['cristiano ronaldo', 'Lionel Messi']
6.当起始位置为0时,可以不写:
print(list_test[:3])['cristiano ronaldo', 'Lionel Messi', 'Kaka']
7.列表末尾插入值:
list_test.append("benzema")print(list_test)['cristiano ronaldo', 'Lionel Messi', 'Kaka', 'benzema']
8.列表在指定位置插入值:
list_test.insert(2,"Torres")print(list_test)['cristiano ronaldo', 'Lionel Messi', 'Torres', 'Kaka']
9.列表指定值的修改:
list_test[2] = "Nolito"print(list_test)['cristiano ronaldo', 'Lionel Messi', 'Nolito', 'Kaka']
10.列表指定值删除,方法1:
list_test.remove("Nolito")print(list_test)['cristiano ronaldo', 'Lionel Messi', 'Kaka']
11.列表指定值删除,方法2:
del list_test[2]print(list_test)['cristiano ronaldo', 'Lionel Messi']
注:删除一般多用del,可以删除变量以及任何你想删除的东西,会去除占用内容空间,提高系统的IO效率
12.列表指定值删除,方法3:
list_test = ["cristiano ronaldo","Lionel Messi","Kaka"]list_test.pop()'Kaka'print(list_test)['cristiano ronaldo', 'Lionel Messi']list_test.pop(0)'cristiano ronaldo'print(list_test)['Lionel Messi']
注:默认不指定下标的话pop删除列表最后的值,如果输入下标则效果和前面的del list[x]一样
13.在列表中搜索指定值的下标:
list_test = ["cristiano ronaldo","Lionel Messi","Kaka","Kaka"]list_test.index("Kaka")2print(list_test[list_test.index("Kaka")])Kaka
注:会输出下标号,但是发现没有继续往后搜索
14.汇总列表具体的值有多少个:
list_test.count("Kaka")2
15.列表清空、翻转输出以及排序:
list_test = ["cristiano ronaldo","Lionel Messi","Kaka","Kaka"]list_test.clear()print(list_test)[]list_test = ["cristiano ronaldo","Lionel Messi","Kaka","Kaka"]list_test.reverse()print(list_test)['Kaka', 'Kaka', 'Lionel Messi', 'cristiano ronaldo']list_test.sort()print(list_test)['Kaka', 'Kaka', 'Lionel Messi', 'cristiano ronaldo']
16.多列表的合并:
list_test2 = ["Pepe"]list_test.extend(list_test2)print(list_test)['Kaka', 'Kaka', 'Lionel Messi', 'cristiano ronaldo', 'Pepe']
17.列表切片2:
list_test = ["cristiano ronaldo","Lionel Messi","Kaka","Kaka"]print(list_test[1:4])['Lionel Messi', 'Kaka', 'Kaka']print(list_test[1:4][1:3])['Kaka', 'Kaka']print(list_test[1:4][1:3][0])Kakaprint(list_test[1:4][1:3][0][1:4])aka
注:可以针对列表进行持续的切片,一直到切到一个值里面具体的某个字符
18.列表复制
list_test = ["cristiano ronaldo","Lionel Messi","Kaka","Kaka"]list_test2 = list_test.copy()print(list_test)['cristiano ronaldo', 'Lionel Messi', 'Kaka', 'Kaka']print(list_test2)['cristiano ronaldo', 'Lionel Messi', 'Kaka', 'Kaka']
19.列表copy的用法:
list_test = ["cristiano ronaldo",["tandabin","wubohang"],"Lionel Messi","Kaka","Kaka"]list_test2 = list_test.copy()list_test[0] = "Cristiano Ronaldo"list_test[1][0] = "TanDaBin"print(list_test,"\n",list_test2)['Cristiano Ronaldo', ['TanDaBin', 'wubohang'], 'Lionel Messi', 'Kaka', 'Kaka'] ['cristiano ronaldo', ['TanDaBin', 'wubohang'], 'Lionel Messi', 'Kaka', 'Kaka']
注:copy的用法只是“潜”复制,只会复制列表的第一层内容,列表嵌套列表,子列表会作为一个“值”存在于父列表中,相当于一个独立的内存地址,当list_test2复制list_test时,list_test2中的子列表没有复制,只是一串内存指针,引入了过去,所以当嵌套列表的内容发生改变时,list_test2的子列表内容会跟着变化
20.嵌套列表完整复制:
print(list_test,"\n",list_test2)list_test = ["cristiano ronaldo",["tandabin","wubohang"],"Lionel Messi","Kaka","Kaka"]import copylist_test2 = copy.deepcopy(list_test)list_test[1][0] = "TanDaBin"list_test[0] = "Cristiano Ronaldo"print(list_test,"\n",list_test2)['Cristiano Ronaldo', ['TanDaBin', 'wubohang'], 'Lionel Messi', 'Kaka', 'Kaka'] ['cristiano ronaldo', ['tandabin', 'wubohang'], 'Lionel Messi', 'Kaka', 'Kaka']
注:引入模块copy,调用方法copy.deepcopy就是完全复制整个列表的值,不管中间有没有嵌套列表,被拷贝出来的list_test2的值都不会随着list_test的改变而改变
21.列表步长:
list_test = ["cristiano ronaldo",["tandabin","wubohang"],"Lionel Messi","Kaka","Kaka"]print(list_test[0:3])['cristiano ronaldo', ['tandabin', 'wubohang'], 'Lionel Messi']print(list_test[0:3:2])['cristiano ronaldo', 'Lionel Messi']
22.列表循环:
list_test = ["cristiano ronaldo",["tandabin","wubohang"],"Lionel Messi","Kaka","Kaka"]for i in list_test: print(i)cristiano ronaldo['tandabin', 'wubohang']Lionel MessiKakaKaka
23.列表出现多个重复值,同时匹配并且修改方法1:
#!/usr/bin/env python3# this is tandabin scripts!!user_input = input("Please in input your value: ")list_test = ["cristiano ronaldo",["tandabin","wubohang"],"Lionel Messi","Kaka","Kaka"]count = len(list_test)for k in range(count): if list_test[k] == user_input: list_test[k] = "Yaya Toure"print(list_test)###################################################Please in input your value: Kaka['cristiano ronaldo', ['tandabin', 'wubohang'], 'Lionel Messi', 'Yaya Toure', 'Yaya Toure']
24.列表出现多个重复值,同时匹配并修改方法2:
#!/usr/bin/env python3# this is tandabin scripts!!user_input = input("Please in input your value: ")list_test = ["cristiano ronaldo",["tandabin","wubohang"],"Lionel Messi","Kaka","Kaka"]for i in range(list_test.count(user_input)): directory = list_test.index(user_input) list_test[directory] = "Yaya Toure"print(list_test)########################################################Please in input your value: Kaka['cristiano ronaldo', ['tandabin', 'wubohang'], 'Lionel Messi', 'Yaya Toure', 'Yaya Toure']
注:虽然两种方法达到的效果一样,但是在逻辑有着很大的差别,首先第一种方法是循环查找每个下标对应的值是否匹配用户的输入value,如果符合在去处理替换操作,在替换过程中始终一直在走循环处理,而第二种方法的index定位下标它始终只会定位到第一个匹配value的值,然后替换之后再通过循环之后index发现后面的value匹配,而前面已经之前被替换过,所以不会出现无法定位到后面的值的问题,虽然是循环,但是index始终没有做到真正的“多次匹配”value,这个是要分清楚的
25.元组(也叫只读列表):
a = (1,2,3,4)print(a)(1, 2, 3, 4)
注:元组用法和列表几乎一样,唯一的不一样是元组的数据不能更改
26.字符串用法1,首字母大写:
>>> name = "charlie" >>> name.capitalize()'Charlie'
27.字符串用法2,count(和列表的用法类似):
>>> name = "charlie">>> name.count("c")1
28.字符串用法3,center:
>>> name = "charlie">>> print(name.center(50,"-"))---------------------charlie----------------------
29.字符串用法4,encode(字符串二进制转换):
>>> name = "罗总裁">>> print(name.encode('UTF-8'))b'\xe7\xbd\x97\xe6\x80\xbb\xe8\xa3\x81'
30.字符串用法5,endswich(判断是否以某字符串结尾):
>>> name = "charlie">>> print(name.endswith("ie"))True
31.字符串用法6,find(搜索某个字符串的索引)
>>> name = "charlie">>> print(name.find("ch"))0>>> print(name.find("h"))1
32.字符串用法7,判断字符是否是数字或字母或者组合:
a = "abc123"print(a.isalnum())#########################True
33.字符串用法8,判断字符是否是纯英文字符:
a = "abc123"print(a.isalpha())#######################False
34.字符串用法9,列表转换字符串:
>>> a = ["1","2","3"]>>> print("+".join(a))1+2+3
35.字符串用法10,rjust和ljust:
>>> a = "charlie">>> print(a.ljust(50,"+"))charlie+++++++++++++++++++++++++++++++++++++++++++>>> print(a.rjust(50,"-"))-------------------------------------------charlie
36.字符串用法11,大小写转换:
a = "Abc"print(a.lower())print(a.upper())#######################abcABC
37.字符串用法12,去掉左右两边空格以及换行符:
a = " Ab\nc "print(a)print(a.strip())####################### Abc Abc
38.字符串用法13,搜索字符并替换以及匹配最右边字符的下标:
a = "aaa"print(a.replace('a','y'))print(a.replace('a','y',2))print(a.rfind('a'))#########################yyyyya2
39.字符串用法14,字符串按某匹配字符转换列表:
a = "a a a"print(a.split())###################['a', 'a', 'a']a = "a a a"print(a.split('a'))['', ' ', ' ', '']
40.字符串用法15,按照换行符来转换列表:
a = "a a\n a"print(a.splitlines())########################['a a', ' a']
41.字典使用1:
a = { '01':'charlie', '02':'bob', '03':'marry'}print(a)###################{'02': 'bob', '03': 'marry', '01': 'charlie'}
注:每次打印字典的值顺序都是不一样的,因为字典是一种无序存储的数据类型,这是字典的特性之一
42.字典使用2(取具体某个key对应的值):
a = { '01':'charlie', '02':'bob', '03':'marry'}print(a["01"])##################charlie
43.字典使用3(key-value值修改):
a = { '01':'charlie', '02':'bob', '03':'marry'}a["01"] = "CHARLIE"print(a)#######################{'02': 'bob', '03': 'marry', '01': 'CHARLIE'}
44.字典使用4(内容添加):
a = { '01':'charlie', '02':'bob', '03':'marry'}a["04"] = "peter"print(a)#######################{'01': 'charlie', '04': 'peter', '02': 'bob', '03': 'marry'}
45.字典使用5(内容删除1):
a = { '01':'charlie', '02':'bob', '03':'marry'}del a["02"]print(a)#########################{'01': 'charlie', '03': 'marry'}
46.字典使用6(内容删除2):
a = { '01':'charlie', '02':'bob', '03':'marry'}a.pop("03")print(a)####################{'02': 'bob', '01': 'charlie'}
47.字典使用7(查找某个值,不确定是否存在):
a = { '01':'charlie', '02':'bob', '03':'marry'}print(a.get('04'))#####################None
48.字典使用8(查找某个key):
a = { '01':'charlie', '02':'bob', '03':'marry'}print('04' in a)#####################False
49.字典嵌套字典嵌套列表用法:
#!/usr/bin/env python3# this is tandabin scripts!!av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] }, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] }}av_catalog["日韩"]["tokyo-hot"][1] = "好像可以免费了!"print(av_catalog["日韩"])######################################{'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '好像可以免费了!']}
50.字典使用9(只打印value):
print(av_catalog.values())#############################dict_values([{'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点'], 'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过']}, {'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢']}, {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}])
51.字典使用10(只打印key):
print(av_catalog.keys())##############################dict_keys(['大陆', '日韩', '欧美'])
52.字典使用11(插入新值):
av_catalog.setdefault("台湾",{"1000":["哈罗","hello"]})print(av_catalog["台湾"])##############################{'1000': ['哈罗', 'hello']}
53.字典使用12(插入新值判断):
av_catalog.setdefault("大陆",{"1000":["哈罗","hello"]})print(av_catalog["大陆"])##################################{'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢']}
注:如果setdefault匹配的key是字典中已经存在的话,那么是不会针对这个key对应的值进行更新值的,会有限保留预先存在key的value
54.字典使用13(update合并字典用法):
av_catalog = { "欧美":{ "www.youporn.com": ["很多免费的,世界最大的","质量一般"], "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"], "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"], "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"] }, "日韩":{ "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"] }, "大陆":{ "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"] }}b = { "大陆":{ "1111":["收费了!!!"] }, 11111111111111:222222222222,}av_catalog.update(b)print(av_catalog)###########################{'大陆': {'1111': ['收费了!!!']}, '日韩': {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}, '欧美': {'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点'], 'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢']}, 11111111111111: 222222222222}
注:update的用法是合并两个字典,当字典出现交叉部分时,则更新这部分的数据
55.字典使用14(字典转换列表):
print(av_catalog.items())#############################dict_items([('欧美', {'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'www.youporn.com': ['很多免费的,世界最大的', '质量一般'], 'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点']}), ('大陆', {'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢']}), ('日韩', {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']})])
56.字典使用15(循环语句):
for i in av_catalog: print(i)#############################欧美大陆日韩##################################for i in av_catalog: print(i,av_catalog[i])######################################欧美 {'x-art.com': ['质量很高,真的很高', '全部收费,屌比请绕过'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourporn高点'], 'letmedothistoyou.com': ['多是自拍,高质量图片很多', '资源不多,更新慢'], 'www.youporn.com': ['很多免费的,世界最大的', '质量一般']}日韩 {'tokyo-hot': ['质量怎样不清楚,个人已经不喜欢日韩范了', '听说是收费的']}大陆 {'1024': ['全部免费,真好,好人一生平安', '服务器在国外,慢']}
- Day2、Python
- Python 【Day2】
- Python-day2
- python day2
- PYTHON----DAY2
- python Day2
- python Day2
- python-DAY2-运算符
- Python 初学记录 day2
- Learning Python Day2
- Python-Day2(函数)
- Python学习笔记Day2
- Python函数Day2
- Python学习,Day2
- python day2(20170221)
- python学习 day2
- python学习日志--day2
- Python-learning Day2
- oracle job定时调度任务
- mysql视图创0建,分组查询第一条记录
- python 升级亲测
- 常用的电平转换方案(74HC245、74LVC4245等)
- 指针和数组的区别
- Python-day2
- getLastKnownLocation返回的值为null及Android studio编译报错
- JavaScript之外部对象概述、window对象、document对象
- cloudera manager启动失败的问题
- express app.set()
- cocos2dx 代理模式实现方法
- Mysql分区/分片 精炼详解
- 【计算机视觉】Object Proposal之BING理解
- 站内信“数据库设计思路”