Python【系列教程】之list(列表),tuple(元组),dict(字典)

举报
小米粒-biubiubiu 发表于 2020/12/02 23:17:15 2020/12/02
【摘要】 一、列表和元组的通用用法 (1) # 定义listmyList = ["a", 20, "python"]print(myList)# 定义元组myTuple = ('a', 20, 'python')print(myTuple)# list,元组和 str的用法类似print(myList[0])print(myList[-1]) print(myTuple[0])pr...

一、列表和元组的通用用法

(1)


  
  1. # 定义list
  2. myList = ["a", 20, "python"]
  3. print(myList)
  4. # 定义元组
  5. myTuple = ('a', 20, 'python')
  6. print(myTuple)
  7. # list,元组和 str的用法类似
  8. print(myList[0])
  9. print(myList[-1])
  10. print(myTuple[0])
  11. print(myTuple[-1])
  12. a_tuple = ('crazyit ', 20, 1.2)
  13. b_tuple = (127, 'crazyit', 'fkit', 3.33)
  14. print(a_tuple)
  15. print(b_tuple)
  16. # 两个元组相加
  17. result = a_tuple + b_tuple
  18. print(result)
  19. # 两个list相加
  20. print(['a', 'b'] + ['c', 'd'])
  21. # 将a_tuple元组乘3
  22. print(a_tuple * 3)
  23. # 将myList 乘3
  24. print(myList * 3)
  25. # in的用法和str的用法类似
  26. print('x' in myList)
  27. print(len(myList))
  28. print(max(myList))
  29. print(min(myList))

(2)序列封包和序列解包

python还提供了序列封包( Sequ nce Packing )和序列解包( Sequence Unpacking )的功能 ,简单来说 Python 允许支持 以下两种赋值方式。

1.程序把多个值赋给一个变量时, Python 会自动将多个值封装成元组。这种功能被称为序列 封包

2.程序允许将序列(元组或列表等)直接赋值给多个变量,此时序列的各元素会被依次赋值 给每个变量(要求序列的元素个数和变 个数相等)。这种功能被称为序列解包。


  
  1. # 序列封包
  2. vals = 10, 20, 30
  3. print(vals, "vals的数据类型是:", type(vals))
  4. print(vals[1])
  5. a_tuple = tuple(range(1, 10, 2))
  6. # 序列解包,
  7. a, b, c, d, e = a_tuple
  8. print(a, b, c, d, e)
  9. a_list = ['kit', 'yit']
  10. a_str, b_str = a_list
  11. # first second 保存前两个元素, rest 列表包含剩下的元素
  12. first, second, *rest = range(10)
  13. print(first)
  14. print(second)
  15. print(rest)
  16. # last 保存最后一个元素, begin 保存前面剩下的元素
  17. *begin, last = range(10)
  18. print(begin) # [0 , 1 , 2, 3 , 4, 5 , 6, 7 , 8]
  19. print(last) # 9
  20. # first 保存第一个元素, last 保存最后一个元素, middle保存中间剩下的元素
  21. first, *middle, last = range(10)
  22. print(first) # 0
  23. print(middle) # [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7, 8]
  24. print(last) # 9

 

二、使用列表

列表与元组最大的区别在于:元组是不可改变的,列表是可改变的 。元组支持的操作,列表基本上都支持 ;列表支持对元素的修改,而元主且则不支持。从这个角度来看,可以认为列表是增强版的元组。

虽然大部分时候都 使用列表来代替元组,但如果程序不需要修改列表所包含的 元素 ,那么使用元组代替列表会更安全。


  
  1. a_tuple = ('cazy', 20, -1.2)
  2. #将元组转换成列表
  3. a_list = list(a_tuple)
  4. print(a_list)
  5. #使用range()函数创建区间range对象
  6. a_range = range(1,5)
  7. print(a_range)
  8. #将区间转换成列表
  9. b_list = list(a_range)
  10. print(b_list)
  11. #创建区间指定步长
  12. c_list = list(range(4,20,3))
  13. print(c_list)

与list()对应的是, Python 也提供了一个 tuple () 函数,该 函数可用于 将列表、区间 range 等 对象转换为元组。

如下代码:


  
  1. # 将列表转换成元组
  2. a_tuple = tuple(a_list)
  3. print(a_tuple)
  4. # 将区间转换成元组
  5. b_tuple = tuple(range(1, 5))
  6. print(b_tuple)
  7. # 创建区间时还指定了步长
  8. c_tuple = tuple(range(4, 20, 3))
  9. print(c_tuple)

  
  1. # list追加元素
  2. a_list = ['d', 'z']
  3. a_list.append(50)
  4. print(a_list)
  5. a_list.append(('asdqw', 'qweqwe'))
  6. a_list.append(['sad', 'asd'])
  7. print(a_list)
  8. """append ()方法既可接收单个值,也可接收元组、列表等 ,但该方法只是把元组、列表当成单个
  9. 元素 这样就会形成在列表中嵌套列表、嵌套元组的情形"""
  10. """如果希望不将被追加的列表当成 个整体,而只是追加列表
  11. 中的元素 ,则可使用列表的 exte nd()方法。"""
  12. a_list.extend(['1', '2', '3', '4', '5', '6'])
  13. print(a_list)
  14. a_list.extend(range(97, 100))
  15. print(a_list)
  16. """如果希望在列表中间增加元素,则可使用列表的 insert()方法,使用 insert()方法时要指
  17. 定将元素插入列表的哪个位置。"""
  18. """删除列表元素使用del语句。del语句是python的一种语句,专门用于执行删除操作,不仅可
  19. 用于删除列表的元素,也可用于删除变量等"""
  20. """使用 del 语句既可删除列表中的单个元素,也可直接删除列表的中间一段。例如如下代码。"""
  21. a_list = ['crazy', 20, -2.4, (3, 4), 'kit']
  22. # 删除第三个元素
  23. del a_list[2]
  24. print(a_list)
  25. # 删除第二个到第四个元素
  26. del a_list[1:3]
  27. print(a_list)
  28. # 删除第3个到倒数第2个(不包含)元素,间隔为2
  29. del a_list[2:-2:2]
  30. print(a_list)
  31. # 删除 name 变量
  32. name = 'crazy'
  33. print(name)
  34. del name
  35. # list的remove函数,移除第一个匹配到的元素,如果没有匹配到则报 ValueError
  36. test_list = [1, 2, 3]
  37. test_list.remove(1)
  38. # 该方法用于清空列表的所有元素
  39. test_list.clear()
  40. # 修改列表元素
  41. a_list = [2, 4, -3.4, 'crazy', 23]
  42. a_list[2] = 5
  43. print(a_list)
  44. a_list[-2] = 'kll'
  45. print(a_list)
  46. b_list = list(range(1, 5))
  47. # 将第2个到第4个(不包含)元素赋值为新列表的元素
  48. b_list[1:3] = ['a', 'b']
  49. print(b_list)
  50. #将第3个到第3个(不包含)元素赋值为新列表的元素 就是插入元素
  51. b_list[2:2] = ['x', 'y']
  52. print(b_list)
  53. #将第3个到第6个(不包含)元素赋值为空列表,就是删除元素
  54. b_list[2:5] = []
  55. print(b_list)
  56. b_list[1:3] = 'charlie'
  57. print(b_list)
  58. c_list = list(range(1,10))
  59. c_list[2:9:2] = ['a','b','c','d']
  60. print(c_list)
  61. #count():用于统计列表中某个元素出现的次数。
  62. print(c_list.count('a'))
  63. #index() :用 于判断某个元素在列表中出现的位置
  64. print(c_list.index('a'))
  65. #pop():用于将列表当成“栈”使用实现元素出栈功能
  66. c_list.append('last')
  67. print(c_list.pop())
  68. #reverse ():用于将列表中的元素反向存放
  69. print(c_list.reverse())
  70. #用于对列表元素排序。使用 len函数按照元素的长度排序,并且反序
  71. print(c_list.sort(key=len,reverse=True))

 

三、使用字典

(1)字典的入门及创建字典


  
  1. # 使用字典
  2. scores = {'语文': 89, '数学': 92, '英文': 93}
  3. # 空字典
  4. empty_dict = {}
  5. # 使用元组作为dict的key
  6. dict2 = {(20, 30): 'good', 30: 'bad'}

需要指出的是,元组可以作为 diet的 key ,但列表不能作为元组的 key 这是由于 diet 要求 key 必须是不可变类型,但列表是可变类型,因此列表不能作为元组的 key


  
  1. # 在使用 diet()函数创建字典时 可以传入多个列表或元组参数作为 key-value 每个列表或元组将被当成一个 key-value 对
  2. # 因此这些列表或者元组都只能包含两个元素
  3. vegtables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]
  4. dict3 = dict(vegtables)
  5. print(dict3)
  6. vegtables1 = [['celery', 1.58], ['brocoli', 1.29], ['lettuce', 2.19]]
  7. dict4 = dict(vegtables1)
  8. print(dict4)
  9. # 空字典
  10. dict5 = dict()
  11. # 通过关键字的形式创建字典
  12. dict(spinach=1.39, cabb=2.59) #{ ’ spinach ’: 1. 39,’eabbage ' : 2 . 5 9}

(2)字典的基本用法


  
  1. scores = {'语文':89}
  2. #通过 key访问value
  3. print(scores['语文'])
  4. print(scores.get('语文'))
  5. #对不存在的 key 赋值,就是增加 key value
  6. scores['数学'] = 90
  7. print(scores) #{'语文': 89, '数学': 90}
  8. #删除 key value
  9. del scores['语文']
  10. del scores['数学']
  11. #修改dict
  12. scores['语文'] = 50
  13. print(scores)
  14. #判断dict是否包含指定的key
  15. print('语文' in scores)
  16. 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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。