列表和元组

通用序列操作

1.索引:序列中所有的元素都是有编号的---从0开始逐渐递增,使用负数索引,python会从右边,也就是最后一个元素开始索引,最后一个元素的编号为-1

list = ['a','d','e','y']
print(list[0])
print(list[-1])

2.切片:

ist = ['a','d','e','y']
print(list[0:3]) #取前三个元素
print(list[-3:]) #取后三个数
list2 = [1,2,3,4,5,6,7,8,9,10]
print(list2[::2]) #取出1-10中的偶数,2指的是步长,步长是可以为负数的(必须让开始点的元素大于结束点)

3. 序列的相加:只有相同类型的序列才能够相加(如:列表与字符串就不能够连接在一起)

>>>[1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>>'hello' + 'world'
'helloworld'
>>>[1,2,3] + 'hello'
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list

4.序列相乘:

>>>'python'*5
'pythonpythonpythonpythonpython'
>>>[42]*5
[42, 42, 42, 42, 42]

5. 长度,最小,最大值

>>>num = [1,10,100]
>>>len(num)
3
>>>min(num)
1
>>>max(num)
100

列表:列表时可以修改的

1.列表的创建:

  1.创建空列表:

  >>>list1 = []

  2. list()函数创建:

  >>>list('hello')
  ['h', 'e', 'l', 'l', 'o']

  >>>list(range(1,10))
  [1, 2, 3, 4, 5, 6, 7, 8, 9]

2. 改变列表:元素赋值(不能对一个位置不存在的元素赋值)

  >>>list = ['a','b','c']

  >>>list[0]=111

  >>>list   

  [111,'b','c']

3. 删除元素:

  >>>list = ['a','b','c']

  >>>del list[1]

  >>>list

  ['a','c']

4. 切片赋值:

  1. 一次为多个元素赋值

  >>>name = list('alxe')
  >>>name
  ['a', 'l', 'x', 'e']
  >>>name[2:] = list('wc')
  >>>name
  ['a', 'l', 'w', 'c']

  2. 在使用切片赋值时,可以使用与原序列不相等的序列进行切片替换

  >>>name = list('alxe')
  >>>name[1:] = list('python')
  >>>name
  ['a', 'p', 'y', 't', 'h', 'o', 'n']

  3. 使用切片插入新元素

  >>>num = [1,5]
  >>>num[1:1] = [2,3,4]
  >>>num
  [1, 2, 3, 4, 5]

  4. 使用切片删除列表元素

  >>>num = [1,2,3,4,5]
  >>>num[1:4] = []
  >>>num
  [1, 5]

  以上列子等同于:del num[1:4]

4. 列表的方法:

  1. .append() :在列表末尾追加新的对象

  >>>num = [1,2,3,4,5]
  >>>num.append(10)
  >>>num
  [1, 2, 3, 4, 5, 10]

  2. .count():统计某个元素在列表中出现的次数

  >>>num = [1,2,3,4,5,1,1,2,1,3,1,1]
  >>>num.count(1)
  6

  3. .extend():在列表的后面一次性追加多个值

  >>>num1= [1,2,3,]
  >>>num2= [4,5,6]
  >>>num1.extend(num2)
  >>>num1
  [1, 2, 3, 4, 5, 6]

  4. .index():用于从列表中找出某个值第一次出现的位置

  >>>lis = ['who','you','who','is']
  >>>lis.index('who')
  0

  5. .insert() :将对象查到列表中

  >>>lis = ['who','you','who','is']
  >>>lis.insert(2,'name')
  >>>lis
  ['who', 'you', 'name', 'who', 'is']

  6. .pop() :删除列表中的元素(默认最后一个),  并将该元素返回

  >>>lis = ['who','you','who','is']
  >>>lis.pop()
  'is'
  >>>lis
  ['who', 'you', 'who']
  >>>lis.pop(1)
  'you'
  >>>lis
  ['who', 'who']

  7. remove() :删除列表中某个值的第一个匹配项

  >>>lis = ['who','you','who','is']
  >>>lis.remove('who')
  >>>lis
  ['you', 'who', 'is']

  8. .reverse():将列表中的元素反向存放

  >>>lis = [1,2,3,4,5]
  >>>lis.reverse()
  >>>lis
  [5, 4, 3, 2, 1]

  9. .sort():对列表进行排序,无返回值(原序列发生改变)

  10. .sorted():对列表进行排序,返回一个排列后的列表副本,原列表无改变

  >>>lis = [2,4,6,1,0,7,9,3]
  >>>lis.sort()
  >>>lis
  [0, 1, 2, 3, 4, 6, 7, 9]

 

  >>>x = [2,4,6,1,0,7,9,3]
  >>>y = x[:]  # 列表的复制
  >>>y.sort()
  >>>x
  [2, 4, 6, 1, 0, 7, 9, 3]
  >>>y
  [0, 1, 2, 3, 4, 6, 7, 9]

 元组元组和字符串一样不可以修改

1. 元组的创建

  1. 空元组: a = ()

  2. 包含一个值得元组: a = (11,)  # 一定要有逗号

  >>>3*(40+2)

  126

  >>>3*(40+2,)

  (42,42,42)

  3. tuple():函数

  >>>print(tuple([1,2,3]))

  (1,2,3)

 

 

 

 

 

 

 

 

 

  

posted @ 2017-07-02 00:24  后盾  阅读(216)  评论(0)    收藏  举报