Python基础:列表、元组和字典

Python中最为常用的数据容器有列表、元组和字典。是使用Python必须掌握的基础。本文详细介绍列表、元组和字典,以及字典的两种(按照key排序和按照value排序)排序方法。

一、列表

1.创建

list1 = [1,2,3,4,5,6]
list2 = ['a','b','c','d','e']
list3 = [1,'2',[3,"a"],(5,6)]

特殊的创建方法:

li = [x for x in range(5)]                    #[0, 1, 2, 3, 4]
li = [(x, x * 2) for x in range(5)]           #[(0, 0), (1, 2), (2, 4), (3, 6), (4, 8)]
li = [x for x in range(5) if (x % 2) == 0]    #[0, 2, 4]

2.访问

list1[1]     #2
list3[-1]    #(5,6)

3.切片

list1[::2]    #[1, 3, 5]
list3[2:-1]   #[[3, 'a']]
list3[2][1]   #'a'

4.修改

list1[0] = 0                #[0, 2, 3, 4, 5, 6]
list2[2] = ["b"]            #['a', 'b', ['b'], 'd', 'e']
list3[0:2] = [1.1,'2.2']    #[1.1, '2.2', [3, 'a'], (5, 6)]

5.删除

list1 = [1,2,3,4,5,6]

del list1[0]            #[2, 3, 4, 5, 6]
del list1[1:2]          #[1, 4, 5, 6]
list1[1:2] = []          #[1, 4, 5, 6]

6.操作符('+', '*' , in, not in)

list1 = [1,2,3,4,5,6]
list2 = ['a','b','c','d','e']

li = list1 + list2    #[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e']

li = list1 * 2        #[1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]

5 in list1            #True

8 not in list1        #True

7.函数方法

li = [0,1,2,3,3,5]

#列表长度
len(li)                 #6

#列表最大值
max(li)                 #5

#列表最小值
min(li)                 #0

#在末尾增加元素
li.append(6)            #[0, 1, 2, 3, 3, 5, 6]

#元素出现的次数
li.count(3)             #2

#返回元素第一次出现的索引
li.index(3)             #3 (没有该元素会跑出异常)

#在index为7的位置插入元素9
li.insert(7,9)          #[0, 1, 2, 3, 3, 5, 9]

#删除index位置的元素
li.pop(4)               #[0, 1, 2, 3, 5]

#移除指定元素的第一个值
li.remove(3)            #[0, 1, 2, 3, 5]

#翻转列表    
li.reverse()            #[5, 3, 3, 2, 1, 0]

#排序
li.sort(reverse=False)  #[0,1,2,3,3,5]

#清空列表
li.clear()
del li[:]
li = []

二、元组

1.创建

    元组的元素可以直接赋值给多个变量,但变量数必须与元素数量一致。Python中函数Function是可以返回多个值的,这时返回的就是元组类型。

a, b, c = (1, 2, 3)
d = ('a', 'b', 'c')

print(a)        #1
print(b)        #2
print(c)        #3
print(d)        ('a', 'b', 'c')

 

2.访问

d = ('a', 'b', 'c')

d[1]                    #'a'
d[1:3]                  #('b', 'c')

3.操作符

a = (1, 2, 3)
d = ('a', 'b', 'c')

a + d                   #(1, 2, 3, 'a', 'b', 'c')
d * 2                   #('a', 'b', 'c', 'a', 'b', 'c')

4.元组不可以修改、删除元素

三、字典

1.创建

d = {key1 : value1, key2 : value2 }

特殊创建方法:

{x: x**2 for x in (2, 4, 6)}    #{2: 4, 4: 16, 6: 36}

2.访问

dic = {'a': 1, 'b': [1, 2, 3], 'c':{1:2}}

dic['b'][2]                    #3
dic['a']                       #1
dic['b']                       #[1, 2, 3]
dic['c'][1]                    #2

3.修改

dic = {'a': 1, 'b': [1, 2, 3]}

dic['b'][1] = 0                #{'a': 1, 'b': [1, 0, 3]}

4.删除

dic = {'a': 1, 'b': [1, 2, 3]}

#删除元素
del dic['a']                    #{'b': [1, 2, 3]}

#删除字典
del dic

5.函数方法

dic = {'a': 1, 'b': 2, 'c':3}

len(dic)                        #3

str(dic)                        #"{'a': 1, 'b': 2, 'c': 3}"

'a' in dic                      #True

dic.get('a')                    #1

dic.items()                     #dict_items([('a', 1), ('b', 1), ('c', 3)])

dic.keys()                      #dict_keys(['a', 'b', 'c'])

dic.values()                    #dict_values([1, 1, 3])

dic.update({'a':0})             #{'a': 0, 'b': 2, 'c': 3}

dic.pop('b')                    #{'a': 0, 'c': 3}

6.字典排序

按key排序:

dic = {'a': 2, 'c': 3, 'b':1}

sorted(dic.items(), key=lambda d: d[0])    

#输出:
[('a', 2), ('b', 1), ('c', 3)]

按value排序:

dic = {'a': 2, 'c': 3, 'b':1}

sorted(dic.items(), key=lambda d: d[1])

#输出:
[('b', 1), ('a', 2), ('c', 3)]

总结:

  • 列表是一种无序的、可重复的数据序列,可以随时添加、删除其中的元素。

  • 列表使用方括号创建,使用逗号分隔元素

  • 列表元素值可以是任意类型,包括变量

 

  • 元组与列表类似,不同之处在于元组的元素不能修改

  • 元组使用小括号,列表使用方括号

  • 没有 append(),insert() 这样进行修改的方法,其他方法都与列表一样

 

  • 字典是另一种可变容器模型,可存储任意类型对象

  • 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中

  • 键必须是唯一的,但值则不必,值可以是任意数据类型

  • 如果用字典里没有的键访问数据,会报错

  • 字典的元素没有顺序,不能通过下标引用元素,通过键来引用

  • 字典内部存放的顺序和 key 放入的顺序是没有关系的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值