列表和元组——python

创建列表:

 

1   name_list = ['python','java','shell','c++']
2   #
3   name_list = list(['python','java','shell','c++'])

 

切片:(切片:取多个元素)

 

 1    a = [0,1,2,3,4,5,6]
 2   print(a[0])     #通过下标访问列表中的元素,下标从0开始计数
 3   print(a[-2])    #还可以从后往前取,最后一位代表-1
 4   print(a[1:5])   #从下标1开始取到第五位,包括1,不包括5
 5   print(a[0:4])   #同上,包括0,不包括4
 6   print(a[:4])    #同上,从头开始取,0可以不写
 7   print(a[2:5])   #取第二位到第五位,包括2,不包括5
 8   print(a[3:-1])  #同上,包括3,不包括-1
 9   print(a[3:])    #想取最后一位时,可以忽略不写
10   print(a[0::2])  #后面的2,代表跳着取值,间隔一个元素
11   print(a[::3])   #同上,不过间隔两个元素,0可以忽略不写

 

追加:
  

1    a.append('我是新来的')
2   print(a)
结果:[0, 1, 2, 3, 4, 5, 6, '我是新来的']

 

插入:

 

1   a.insert(3,'在3前面插入一个数据')
2   print(a)
3   a.insert(5,'在3后面插入一个数据')
4   print(a)
结果:[0, 1, 2, '在3前面插入一个数据', 3, 4, 5, 6, '我是新来的']
   [0, 1, 2, '在3前面插入一个数据', 3, '在3后面插入一个数据', 4, 5, 6, '我是新来的'] 

 

修改:
 

1   a[3]='该换人了'
2   print(a)
结果:[0, 1, 2, '该换人了', 3, '在3后面插入一个数据', 4, 5, 6, '我是新来的']

 

删除:
 

1   del a[3]    #指定删除的位置
2   print(a)
3   a.remove('在3后面插入一个数据')  #指定删除的内容
4   print(a)
5   a.pop()     #默认删除最后一位,也可输入下标删除指定
6   print(a)
结果:[0, 1, 2, 3, '在3后面插入一个数据', 4, 5, 6, '我是新来的']
   [0, 1, 2, 3, 4, 5, 6, '我是新来的']
   [0, 1, 2, 3, 4, 5, 6]

 

扩展:
  

1   b = 1,2,3
2   print(b)
3   a.extend(b)
4   print(a)
结果:(1, 2, 3)
   [0, 1, 2, 3, 4, 5, 6, 1, 2, 3]

 

统计:
  

1 print(a.count(3))   #看整数3在列表a中存在几个
结果:2

 

排序:‘数据类型不一样的不可以在一起排序’

 (默认顺序:特殊符号,数字,大写字母,小写字母)
  

1 a.sort()    #正序
2   print(a)
3   a.reverse() #翻转
4   print(a)
结果:[0, 1, 1, 2, 2, 3, 3, 4, 5, 6]
   [6, 5, 4, 3, 3, 2, 2, 1, 1, 0]

 

获取下标:
  

1 print(a)
2 print(a.index(2))
结果:[6, 5, 4, 3, 3, 2, 2, 1, 1, 0]
   5

 

 

拷贝:

1、copy(浅copy)

  

 1   names = ['nihao','zhangsan',['张三','李四'],'lisi','wangwu']
 2   _name = names.copy()
 3   #只复制父列表.子列表相当于只指定一个位置,因此会跟随改变。
 4   names[3] = 'lisi2'
 5   names[2][0] = '张三丰'
 6   print(names)
 7   print(_name)
 8 
 结果:['nihao', 'zhangsan', ['张三丰', '李四'], 'lisi2', 'wangwu']
    ['nihao', 'zhangsan', ['张三丰', '李四'], 'lisi', 'wangwu']

 

2、调用模块的复制(浅copy)

 

1    import copy #定义copy模块
2   names = ['nihao','zhangsan',['张三','李四'],'lisi','wangwu']
3   _name = copy.copy(names)
4   #与_name = names.copy()相同,结果就不赘述了。
5   names[3] = 'lisi2'
6   names[2][0] = '张三丰'
7   print(names)
8   print(_name)

 

3、调用模块,只复制原内容,更改后不复制更改内容。(深copy)

 1   import copy
 2   names = ['nihao','zhangsan',['张三','李四'],'lisi','wangwu']
 3   _name = copy.deepcopy(names)
 4   #真正意义上的拷贝,不考虑后来的变化
 5   print(names)
 6   names[3] = 'lisi2'
 7   names[2][0] = '张三丰'
 8   print(names)
 9   print(_name)
 结果:['nihao', 'zhangsan', ['张三', '李四'], 'lisi', 'wangwu']
     ['nihao', 'zhangsan', ['张三丰', '李四'], 'lisi2', 'wangwu']
    ['nihao', 'zhangsan', ['张三', '李四'], 'lisi', 'wangwu']

 

元组: 

  元组其实跟列表差不多,也是存一组数,只不过它一旦创建,便不能再修改,所以又叫只读列表。

例:name = ('zhangsan','lisi','wangwu')

它只有两个方法,一个是count(统计),一个是index(获取下标)。

 

                                              

posted @ 2017-10-01 15:06  冲冲、冲  阅读(127)  评论(0编辑  收藏  举报