Python【系列教程】之list(列表),tuple(元组),dict(字典)
一、列表和元组的通用用法
(1)
-
# 定义list
-
myList = ["a", 20, "python"]
-
print(myList)
-
# 定义元组
-
myTuple = ('a', 20, 'python')
-
print(myTuple)
-
# list,元组和 str的用法类似
-
print(myList[0])
-
print(myList[-1])
-
-
print(myTuple[0])
-
print(myTuple[-1])
-
a_tuple = ('crazyit ', 20, 1.2)
-
b_tuple = (127, 'crazyit', 'fkit', 3.33)
-
print(a_tuple)
-
print(b_tuple)
-
# 两个元组相加
-
result = a_tuple + b_tuple
-
print(result)
-
# 两个list相加
-
print(['a', 'b'] + ['c', 'd'])
-
# 将a_tuple元组乘3
-
print(a_tuple * 3)
-
# 将myList 乘3
-
print(myList * 3)
-
# in的用法和str的用法类似
-
print('x' in myList)
-
-
print(len(myList))
-
print(max(myList))
-
print(min(myList))
(2)序列封包和序列解包
python还提供了序列封包( Sequ nce Packing )和序列解包( Sequence Unpacking )的功能 ,简单来说 Python 允许支持 以下两种赋值方式。
1.程序把多个值赋给一个变量时, Python 会自动将多个值封装成元组。这种功能被称为序列 封包
2.程序允许将序列(元组或列表等)直接赋值给多个变量,此时序列的各元素会被依次赋值 给每个变量(要求序列的元素个数和变 个数相等)。这种功能被称为序列解包。
-
# 序列封包
-
vals = 10, 20, 30
-
print(vals, "vals的数据类型是:", type(vals))
-
print(vals[1])
-
a_tuple = tuple(range(1, 10, 2))
-
# 序列解包,
-
a, b, c, d, e = a_tuple
-
print(a, b, c, d, e)
-
a_list = ['kit', 'yit']
-
a_str, b_str = a_list
-
# first second 保存前两个元素, rest 列表包含剩下的元素
-
first, second, *rest = range(10)
-
print(first)
-
print(second)
-
print(rest)
-
# last 保存最后一个元素, begin 保存前面剩下的元素
-
*begin, last = range(10)
-
print(begin) # [0 , 1 , 2, 3 , 4, 5 , 6, 7 , 8]
-
print(last) # 9
-
# first 保存第一个元素, last 保存最后一个元素, middle保存中间剩下的元素
-
first, *middle, last = range(10)
-
print(first) # 0
-
print(middle) # [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7, 8]
-
print(last) # 9
二、使用列表
列表与元组最大的区别在于:元组是不可改变的,列表是可改变的 。元组支持的操作,列表基本上都支持 ;列表支持对元素的修改,而元主且则不支持。从这个角度来看,可以认为列表是增强版的元组。
虽然大部分时候都 使用列表来代替元组,但如果程序不需要修改列表所包含的 元素 ,那么使用元组代替列表会更安全。
-
a_tuple = ('cazy', 20, -1.2)
-
#将元组转换成列表
-
a_list = list(a_tuple)
-
print(a_list)
-
#使用range()函数创建区间range对象
-
a_range = range(1,5)
-
print(a_range)
-
#将区间转换成列表
-
b_list = list(a_range)
-
print(b_list)
-
#创建区间指定步长
-
c_list = list(range(4,20,3))
-
print(c_list)
与list()对应的是, Python 也提供了一个 tuple () 函数,该 函数可用于 将列表、区间 range 等 对象转换为元组。
如下代码:
-
# 将列表转换成元组
-
a_tuple = tuple(a_list)
-
print(a_tuple)
-
# 将区间转换成元组
-
b_tuple = tuple(range(1, 5))
-
print(b_tuple)
-
# 创建区间时还指定了步长
-
c_tuple = tuple(range(4, 20, 3))
-
print(c_tuple)
-
# list追加元素
-
a_list = ['d', 'z']
-
a_list.append(50)
-
print(a_list)
-
a_list.append(('asdqw', 'qweqwe'))
-
a_list.append(['sad', 'asd'])
-
print(a_list)
-
"""append ()方法既可接收单个值,也可接收元组、列表等 ,但该方法只是把元组、列表当成单个
-
元素 这样就会形成在列表中嵌套列表、嵌套元组的情形"""
-
"""如果希望不将被追加的列表当成 个整体,而只是追加列表
-
中的元素 ,则可使用列表的 exte nd()方法。"""
-
a_list.extend(['1', '2', '3', '4', '5', '6'])
-
print(a_list)
-
a_list.extend(range(97, 100))
-
print(a_list)
-
"""如果希望在列表中间增加元素,则可使用列表的 insert()方法,使用 insert()方法时要指
-
定将元素插入列表的哪个位置。"""
-
-
"""删除列表元素使用del语句。del语句是python的一种语句,专门用于执行删除操作,不仅可
-
用于删除列表的元素,也可用于删除变量等"""
-
"""使用 del 语句既可删除列表中的单个元素,也可直接删除列表的中间一段。例如如下代码。"""
-
a_list = ['crazy', 20, -2.4, (3, 4), 'kit']
-
# 删除第三个元素
-
del a_list[2]
-
print(a_list)
-
# 删除第二个到第四个元素
-
del a_list[1:3]
-
print(a_list)
-
# 删除第3个到倒数第2个(不包含)元素,间隔为2
-
del a_list[2:-2:2]
-
print(a_list)
-
-
# 删除 name 变量
-
name = 'crazy'
-
print(name)
-
del name
-
# list的remove函数,移除第一个匹配到的元素,如果没有匹配到则报 ValueError
-
test_list = [1, 2, 3]
-
test_list.remove(1)
-
# 该方法用于清空列表的所有元素
-
test_list.clear()
-
-
# 修改列表元素
-
a_list = [2, 4, -3.4, 'crazy', 23]
-
a_list[2] = 5
-
print(a_list)
-
a_list[-2] = 'kll'
-
print(a_list)
-
-
b_list = list(range(1, 5))
-
# 将第2个到第4个(不包含)元素赋值为新列表的元素
-
b_list[1:3] = ['a', 'b']
-
print(b_list)
-
#将第3个到第3个(不包含)元素赋值为新列表的元素 就是插入元素
-
b_list[2:2] = ['x', 'y']
-
print(b_list)
-
#将第3个到第6个(不包含)元素赋值为空列表,就是删除元素
-
b_list[2:5] = []
-
print(b_list)
-
b_list[1:3] = 'charlie'
-
print(b_list)
-
-
c_list = list(range(1,10))
-
c_list[2:9:2] = ['a','b','c','d']
-
print(c_list)
-
-
#count():用于统计列表中某个元素出现的次数。
-
print(c_list.count('a'))
-
#index() :用 于判断某个元素在列表中出现的位置
-
print(c_list.index('a'))
-
#pop():用于将列表当成“栈”使用实现元素出栈功能
-
c_list.append('last')
-
print(c_list.pop())
-
#reverse ():用于将列表中的元素反向存放
-
print(c_list.reverse())
-
#用于对列表元素排序。使用 len函数按照元素的长度排序,并且反序
-
print(c_list.sort(key=len,reverse=True))
三、使用字典
(1)字典的入门及创建字典
-
# 使用字典
-
scores = {'语文': 89, '数学': 92, '英文': 93}
-
# 空字典
-
empty_dict = {}
-
# 使用元组作为dict的key
-
dict2 = {(20, 30): 'good', 30: 'bad'}
需要指出的是,元组可以作为 diet的 key ,但列表不能作为元组的 key 这是由于 diet 要求 key 必须是不可变类型,但列表是可变类型,因此列表不能作为元组的 key
-
# 在使用 diet()函数创建字典时 可以传入多个列表或元组参数作为 key-value 每个列表或元组将被当成一个 key-value 对
-
# 因此这些列表或者元组都只能包含两个元素
-
vegtables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]
-
dict3 = dict(vegtables)
-
print(dict3)
-
-
vegtables1 = [['celery', 1.58], ['brocoli', 1.29], ['lettuce', 2.19]]
-
dict4 = dict(vegtables1)
-
print(dict4)
-
# 空字典
-
dict5 = dict()
-
# 通过关键字的形式创建字典
-
dict(spinach=1.39, cabb=2.59) #{ ’ spinach ’: 1. 39,’eabbage ' : 2 . 5 9}
(2)字典的基本用法
-
scores = {'语文':89}
-
#通过 key访问value
-
print(scores['语文'])
-
print(scores.get('语文'))
-
-
#对不存在的 key 赋值,就是增加 key value
-
scores['数学'] = 90
-
print(scores) #{'语文': 89, '数学': 90}
-
-
#删除 key value
-
del scores['语文']
-
del scores['数学']
-
-
#修改dict
-
scores['语文'] = 50
-
print(scores)
-
-
#判断dict是否包含指定的key
-
print('语文' in scores)
-
print('语文' not in scores)
字典的 key 是它的关键。换个角度来看,字典的 key就相当于它的索 引,只不过这些索引不一定是整数类型,字典的 key 可以是任意不可变类型。字典相当于索引是任意不可变类型的列表:而列表则相当于 key 只能是整数的字 典。因此 ,如果程序中要使用的字典的 key 是整数类型, 则可考虑能否换成列表。
(3) 字典的常用方法
dir(dict)
cars = {'bmw':9,'bens':8.3}
#清空字典
cars.clear()
cars.get('bmw')
#更新字典
cars.update()
#用于获取字典的kv键值对
cars.items()
#获取字典的所有key
cars.keys()
#获取字典的所有的value
cars.values()
#弹出并删除指定的kv
cars.pop('bmw')
#随机弹出一个kv键值对
cars.popitem()
# setdefault()设置默认的kv,并返回v
# fromKeys() 函数使用给定的多个key创建字典,这些key对应的value默认都是None,也可以额外传入一个参数作为默认的value,该方法一般不会使用字典对象调用。通常会使用dict类直接调用。
#在 字符串模版中使用key
temp = ' 书名是:% {name}s, 价格是: %{price}010.2f, 出版社是:%{publish}s'
book = {’ name’:疯狂Python讲义, ’price’: 88. 9, ’ publish ’: '电子社’}
#使用字典为字符串模版中的key传入值
print(temp % book)
文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31905135/article/details/99948539
- 点赞
- 收藏
- 关注作者
评论(0)