Python学习(四)—— 列表和元组的类中方法

列表

list:用中括号括起来,用“,”分割每个元素,列表中的元素可以是 数字、字符串、列表、布尔值......所有东西,可以说就是一个“集合”

li = [1,3,5,'alex','age',['sister',5],True]

  列表是有序

  支持用索引、切片的方式取值

  支持 for、while循环

  列表元素是可以用索引、切片的方式进行修改和删除的

 1 li = [1,3,5,'alex','age',['sister',5],True]
 2 li[1] = 10
 3 print(li)
 4 li[4] = [1,2,3,4]
 5 print(li)
 6 del li[0]
 7 print(li)
 8 """
 9 [1, 10, 5, 'alex', 'age', ['sister', 5], True]
10 [1, 10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True]
11 [10, 5, 'alex', [1, 2, 3, 4], ['sister', 5], True]
12 """

  索引取值支持嵌套方式

c = li[5][0][1]
print(c)
#i

in和not in:

  判断某个东西是否包含在某个东西里面(判断元素是否在列表中),结果是布尔值

1 li = [1,3,5,'alex','age',['sister',5],True]
2 x = 1 in li
3 y = 'sister' in li
4 z = ['sister',5] in li
5 w = 'sister'and 5 in li
6 print(x,y,z,w)
7 #True False True True

 

和其他类的转换

  字符串可以使用list()转换为列表,内部使用for循环,但数值不可以

  列表转换为字符串的方式:

  ——写for 循环:既有字符串又有数字

1 li = [1,3,5,'alex','age',['sister',5],True]
2 s = ""
3 for i in li:
4   s += str(i)
5 print(s)
6 #135alexage['sister', 5]True

  ——用.join() :只有字符串

1 li = ['alex','age']
2 s = "".join(li)
3 print(s)
4 #alexage

.clear() 

  给列表清空

.copy()  

  浅拷贝

.count() 

  计算元素出现的次数

x.append(c)

  给x列表后追加c值

注意:c是参数,参数是调用函数时传入的变量

1 li = ['alex','age']
2 v = li.append(["lala",124])
3 print(v,li)
4 #None ['alex', 'age', ['lala', 124]]

.extend(iterable) 

  将可迭代对象iterable里的元素一个一个追加,扩展原来的列表,在内部执行for循环。iterable是可迭代对象

1 li = ['alex','age']
2 li.extend(["lala",124])
3 print(li)
4 li.extend("不得了")
5 print(li)
6 """
7 ['alex', 'age', 'lala', 124]
8 ['alex', 'age', 'lala', 124, '不', '得', '了']
9 """

.index() 

  根据值获取当前值的索引位置,最左侧优先

.insert(v1,v2) 

  在第v1位置插入v2

.pop(index)

  删除列表中某个元素,默认删除最后一个,且删除的这个值可以获取

1 li = ['alex','age']
2 v = li.pop()
3 print(li,v)
4 #['alex'] age

 .remove() 

  删除列表中的指定值,且左边优先

.reverse() 

  将当前列表反转

.sort()

  对当前列表排序

1 li = [11,44,22]
2 li.sort()
3 print(li)
4 #[11, 22, 44]

  对当前列表降序排列

1 li = [11,44,22]
2 li.sort(reverse = True)
3 print(li)
4 #[44, 22, 11]

元组 

tuple:是列表的一种加工,用“()”,一级元素不可被修改,不能增加或删除。

  一般在创建元组时会在最后加一个“,”,以区分元组和列表

  元组是有序的

1 tu = (11,44,22,["alex",2],True)
2 print(tu)
3 tu1 = (11,44,22,["alex",2],True,)
4 print(tu1)
5 """
6 (11, 44, 22, ['alex', 2], True)
7 (11, 44, 22, ['alex', 2], True)
8 """

  元组可以通过索引和切片取值

  元组支持for循环和while循环,是可迭代对象

  元组可以修改内部列表的元素:

1 tu = (["alex",4,5],"ewe",)
2 tu[0][2] = [1,3,5]
3 print(tu)
4 #(['alex', 4, [1, 3, 5]], 'ewe')

和其他类的转换

1 tu = ("asfe","ewe",)
2 s = "we35123fe"
3 li = ["aweb","egg"]
4 print(tuple(s),tuple(li))
5 print(str(tu),list(tu))
6 """
7 ('w', 'e', '3', '5', '1', '2', '3', 'f', 'e') ('aweb', 'egg')
8 ('asfe', 'ewe') ['asfe', 'ewe']
9 """

  列表转换为字符串的方式:

  ——写for 循环:既有字符串又有数字

  ——用.join() :只有字符串 

.index()

  获取指定元素的索引,左侧优先

.count()

  获得指定元素在元组中出现的次数

元组和列表的使用情况:

  当创建的东西需要增、删、改时创建列表,当创建的东西不许修改时创建元组

字典

dict类

info = {
    "k1":"v1",  #一个键值对
    "k2":"v2"
}

  字典的value可以是任何值,数值、布尔值、字符串、列表、元组、字典......

  字典的key可以是数值、字符串、元组、布尔值(布尔值会被忽略)

  字典是无序的,即键值对的顺序是无序的

  支持用索引的方式查找元素,不能切片

 1 info = {
 2     "k1":"v1",  #一个键值对
 3     "k2":True,
 4     "k3":[7,86,9,(),{"kk1":4,"kk2":50}],
 5     True:(1,2,3,)
 6 }
 7 print(info)
 8 #{'k1': 'v1', 'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)}
 9 v = info["k3"][4]["kk2"]
10 print(v)
11 #50

  支持删除

1 del info["k1"]
2 print(info)
3 del info["k3"][4]["kk1"]
4 print(info)
5 """
6 {'k2': True, 'k3': [7, 86, 9, (), {'kk1': 4, 'kk2': 50}], True: (1, 2, 3)}
7 {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)}
8 """

for 循环 + .keys()  .values() .items()

  默认for循环和 .keys()结果只有key

  for + .values()结果只有value

  for + .items()结果是键值对

 1 info = {'k2': True, 'k3': [7, 86, 9, (), {'kk2': 50}], True: (1, 2, 3)}
 2 for k in info:
 3     print(k)
 4     """
 5     k2
 6     k3
 7     True
 8     """
 9 for k in info.keys():
10     print(k)
11     """
12     k2
13     k3
14     True
15     """
16 for v in info.values():
17     print(v)
18     """
19     True
20     [7, 86, 9, (), {'kk2': 50}]
21     (1, 2, 3)
22     """
23 for k,v in info.items():
24     print(k,v)
25     """
26     k2 True
27     k3 [7, 86, 9, (), {'kk2': 50}]
28     True (1, 2, 3)
29 """

 .clear()

  清空

 

.copy()

  浅拷贝

dict.fromkeys() 

  根据序列创建字典,指定统一的值

info = dict.fromkeys(["a",1,3],"t")
print(info)
#{'a': 't', 1: 't', 3: 't'}

.get(key, c)

  根据key获取value,如果不存在此key则返回c,不指定c返回None

.pop(key) .popitem()

  前者删除字典中某个键值对,且删除的这个value可以获取

  后者不可加参数,随机删除一对键值对,且可以获取删除的键值对

 .setdefault() 

  设置新键值对,如已存在则获取当前key的值,否则设置,且获取新key对应的值

1 dic = {"k1":"v1","k2":"v2"}
2 v = dic.setdefault("k3",123)
3 print(dic,v)
4 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} 123
5 v1 = dic.setdefault("k1",123)
6 print(dic,v1)
7 #{'k1': 'v1', 'k2': 'v2', 'k3': 123} v1

.update()

  对字典进行更新,有两种使用方式

1 dic = {"k1":"v1","k2":"v2"}
2 dic.update({"k1":1,"k3":123})
3 print(dic)
4 #{'k1': 1, 'k2': 'v2', 'k3': 123}
1 dic = {"k1":"v1","k2":"v2"}
2 dic.update(k1 = 1,k3 = 123)
3 print(dic)
4 #{'k1': 1, 'k2': 'v2', 'k3': 123}

注意:参数写成**kwargs,说明Python会自动转成字典

原文地址:https://www.cnblogs.com/jennifer224/p/12333624.html