python3入门之列表和元组

x33g5p2x  于2021-03-13 发布在 其他  
字(4.7k)|赞(0)|评价(0)|浏览(404)

序列

这章主要介绍的是列表和元组,而列表和元组是序列的六种内型中的两种,主要区别。列表可以修改,而元组不能。而序列很好用比如要操作一组人的名字和年龄可以这样:

  1. >>>peace=['peace one',23]
  2. >>>rong=['sisi',22]
  3. >>>data=[peace,rong]
  4. >>>data
  5. [['peace one',23],['sisi',22]]

序列可以包含其他序列;比如data包含了peace和rong序列

索引

1、序列名按序号索引

peace[1]
23
data[1][1]
22
2、字符串直接按序号索引还可对输入进行索引
‘hello’[1]
‘e’
two=raw_input(‘year: ‘)[1]
year: 2015
two
‘0’

分片索引、

1跟按序号索引类似,可以使用分片操作来访问一定范围内的元素。分片通过冒号分隔开来实现;

tag=’My name is one peace’
tag[11:20]
‘one peace’
注意:第一个索引是分片的第一个元素索引,第二个索引是分片元素最后一个元素索引+1;哪怕像上面的+1索引不存在也没关系.同样制空最后一个索引也是可以的;如下:
tag[-9: ]
‘one peace’
2更大的步长,在两个索引后面再加一个冒号和步长;
tag[1:11:2]
‘ynm s’
注意:同样步长也可以为负数,不过为负数时,是从后往前输出。此时必须第一个索引再第二个索引的后面;比如:
tag[11:1:-2]
‘os mn’

序列运算

1相加又称连接

[1,2,3]+[3,4,6,]
[1,2,3,4,5,6]

注意:两种相同类型才能进行连接操作;比如:[1,2]+’hello’会返回错误
2相乘用列表乘以数字x,得到的新的序列会重复被乘序列x次

[42]*5
[42,42,42,42,42]
3成员资格,检查一个值是否在序列当中,可以使用in运算。
‘p’ in tag
True
‘pe’ in tag
True
‘px’ in tag
False
 4长度,最大值,最小值
#长度函数len
len(tag)
20
#最大值函数max
max([3,4,5])
5
min([3,4,5])
3

列表

list函数

1,list函数,创建列表;

str=list(‘hello’)
str
[‘h’,’e’,’l’,’l’,’o’]

列表操作

1改变列表,元素赋值

str[1]=’p’
str
[‘h’,’p’,’l’,’l’,’o’]
 2删除元素 使用del来删除
del str[1]
str
[‘h’,’l’,’l’,’o’]
 3分片赋值。主要作用如下:
#1,可以使用与原序列不等长的序列将分片替换
str[1: ]=list(‘peace’)
str
[‘h’,’p’,’e’,’a’,’c’,’e’]
#2,可以不替换任可元素的情况下插入元素
str[1:1]=list(‘one’)
str
[‘h’,’o’,’n’,’e’,’p’,’e’,’a’,’c’,’e’]
#3,当然也可以删除、
str[1:4]=list()
str
[‘h’,’p’,’e’,’a’,’c’,’e’]

列表方法

方法是一个与对象紧密相关的函数。直接对象.方法进行调用
列表有append(末尾追加),count(统计次数),extend(新列表追加),index(找到元素为知),insert(按序号插入)
pop(按序号删除)remove(按值删除)reverse(元素翻转),sort(排序),sorted(获取排序后的结果),特殊排序:
sort(cmp)通过比较类型排序,sort(key=len)通过建函数排序(此去是长度len),sort(reverse=True)通过True和false来判断是否翻转排序;
方法操作如下:

  1. #append方法
  2. >>> name = list("scott")
  3. >>> name
  4. ['s', 'c', 'o', 't', 't']
  5. >>> name.append(list(" tiger"))
  6. >>> name
  7. ['s', 'c', 'o', 't', 't', [' ', 't', 'i', 'g', 'e', 'r']]
  8. >>> name = list("scott")
  9. >>> name
  10. ['s', 'c', 'o', 't', 't']
  11. >>> name.append("A","B") #添加多个元素即将报错
  12. Traceback (most recent call last):
  13. File "<stdin>", line 1, in ?
  14. TypeError: append() takes exactly one argument (2 given)
  15. >>> name.append("A")
  16. >>> name
  17. ['s', 'c', 'o', 't', 't', 'A']
  18. #count方法
  19. >>> name = list("scott")
  20. >>> name
  21. ['s', 'c', 'o', 't', 't']
  22. >>> name.count('s')
  23. 1
  24. >>> name.count("t")
  25. 2
  26. >>> name.count("A")
  27. 0
  28. >>> name.append(list("Python"))
  29. >>> name
  30. ['s', 'c', 'o', 't', 't', ['P', 'y', 't', 'h', 'o', 'n']]
  31. >>> name.count(['P', 'y', 't', 'h', 'o', 'n'])
  32. 1
  33. #extend方法
  34. >>> name = list("scott")
  35. >>> name
  36. ['s', 'c', 'o', 't', 't']
  37. >>> name.extend(list(" tiger"))
  38. >>> name
  39. ['s', 'c', 'o', 't', 't', ' ', 't', 'i', 'g', 'e', 'r']
  40. #index方法
  41. >>> name = list("scott")
  42. >>> name
  43. ['s', 'c', 'o', 't', 't']
  44. >>> name.index('t') ##第一个字母t的索引位置是3
  45. 3
  46. >>> name.index('a')
  47. Traceback (most recent call last):
  48. File "<stdin>", line 1, in ?
  49. ValueError: list.index(x): x not in list
  50. >>> 'a' in name
  51. False
  52. >>> 'a' not in name
  53. True
  54. #insert方法
  55. >>> name = list("scott")
  56. >>> name
  57. ['s', 'c', 'o', 't', 't']
  58. >>> name.insert(2,'tiger') ##在索引为2的地方插入字符串tiger
  59. >>> name
  60. ['s', 'c', 'tiger', 'o', 't', 't']
  61. #pop方法
  62. >>> name = list("scott")
  63. >>> name
  64. ['s', 'c', 'o', 't', 't']
  65. >>> name.pop()
  66. 't'
  67. >>> name
  68. ['s', 'c', 'o', 't']
  69. >>> name.append("t")
  70. >>> name
  71. ['s', 'c', 'o', 't', 't']
  72. #remove方法
  73. >>> name = list("scott")
  74. >>> name
  75. ['s', 'c', 'o', 't', 't']
  76. >>> name.remove("t") #去掉第一个t
  77. >>> name
  78. ['s', 'c', 'o', 't']
  79. >>> name.remove("A") #不存在会报错
  80. Traceback (most recent call last):
  81. File "<stdin>", line 1, in ?
  82. ValueError: list.remove(x): x not in list
  83. >>> "A" not in name
  84. True
  85. >>> name.remove("s","c") #一次只能移除一个元素
  86. Traceback (most recent call last):
  87. File "<stdin>", line 1, in ?
  88. TypeError: remove() takes exactly one argument (2 given)
  89. #reverse方法
  90. >>> name = list("scott")
  91. >>> name
  92. ['s', 'c', 'o', 't', 't']
  93. >>> name.reverse()
  94. >>> name
  95. ['t', 't', 'o', 'c', 's']
  96. #sort方法
  97. >>> result = [8,5,5,3,9]
  98. >>> result.sort()
  99. >>> result
  100. [3, 5, 5, 8, 9]
  101. #sorted方法
  102. >>> result = [8,5,5,3,9]
  103. >>> result2 = sorted(result)
  104. >>> result
  105. [8, 5, 5, 3, 9]
  106. >>> result2
  107. [3, 5, 5, 8, 9]

元组

元组
元组与列表一样,也是一种序列,唯一不同的是元组不可以修改:

元组操作

  1. >>> 1,2,3
  2. (1, 2, 3)
  3. >>> ()
  4. ()
  5. #对于单个元素必须加上逗号,加上逗号后就表示数字是元组了
  6. >>> 42
  7. 42
  8. >>> 42,
  9. (42,)
  10. >>> (42,)
  11. (42,)

元组tuple函数

  1. >>> tuple([1,2,3])
  2. (1, 2, 3)
  3. >>> tuple('abc')
  4. ('a', 'b', 'c')
  5. >>> tuple((1,2,3))
  6. (1, 2, 3)

列表与元组的相互转化

  1. >>> T=('cc','aa','dd','bb')
  2. >>> tmp=list(T)
  3. >>> tmp
  4. ['cc', 'aa', 'dd', 'bb']
  5. >>> T=tuple(tmp)
  6. >>> T
  7. ('cc', 'aa', 'dd', 'bb')

相关文章