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': ['全部免费,真好,好人一生平安', '服务器在国外,慢']}
0 0
原创粉丝点击