list

list, 列表

1. 列表特性
1.1 mutable特性验证
2. 列表元素读取
3. 列表元素修改
4. 列表元素删除
5. 列表删除
6. 列表计算
6.1 长度
6.2 组合
6.3 重复
6.3.1 列表内元素为mutable(可变)对象是,使用列表重复要千万小心,只是同一个对象的几次重复;
6.4 元素存在
6.5 迭代
7. 列表函数
7.1 cmp(list1,list2)
7.2 len(list)获取列表长度
7.3 max(list)获取列表最大值,返回值类型和list里最大值类型一致
7.4 min(list)获取列表最小值,返回值类型和list里最小值类型一致
7.5 list(seq)将其他sequence转换为list
8. 列表方法
8.1 list.append(obj) 在列表末尾添加新的对象
8.2 list.count(obj) 统计某个元素在列表中出现的次数
8.3 list.extend(list) 在列表末尾一次性追加另一个list中的多个值(用新列表扩展原来的列表)
8.4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,第一个很重要哦
8.5 list.insert(index, obj) 将对象插入列表,插在index的前面,代替index;
8.6 list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
8.7 list.remove(obj) 移除列表中某个值的第一个匹配项
8.8 list.reverse() 反向列表中元素
8.9 list.sort([func]) 对原列表进行排序
9. 列表分片
9.1 对于list[x:y],或者其他sequence,不仅仅list,x必须出现的比y早;否则会返回一个空[]list,空sequence;
9.2 实战例子,把一个list变成dict

1. 列表特性

  • 可修改对象(mutable)
  • 可包含的元素:任何py里的数据结构
  • 属于sequence,可以使用任何sequence的方法和函数

1.1 mutable特性验证

  • 同一个变量,改变它的对象内容,id仍然为一个,说明对象id没有变化,修改的是同一个对象
 
 
  1. list1 = ['a',(7,9),8]
  2. print list1
  3. print id(list1)
  4. list1[2] = (88,'listA')
  5. print list1
  6. print id(list1)
  7. '''
  8. ['a', (7, 9), 8]
  9. 39312960
  10. ['a', (7, 9), (88, 'listA')]
  11. 39312960
  12. '''

2. 列表元素读取

 
 
  1. list1 = ['a',(7,9),8]
  2. print list1[1]
  3. print type(list1[1])
  4. '''
  5. (7, 9)
  6. <type 'tuple'>
  7. '''

3. 列表元素修改

 
 
  1. list1 = ['a',(7,9),8]
  2. list1[1] = 'sxq'
  3. print list1
  4. '''
  5. ['a', 'sxq', 8]
  6. '''

4. 列表元素删除

 
 
  1. list1 = ['a',(7,9),8]
  2. del list1[1]
  3. print list1
  4. '''
  5. ['a', 8]
  6. '''

5. 列表删除

 
 
  1. list1 = ['a',(7,9),8]
  2. del list1
  3. print list1
  4. '''
  5. NameError: name 'list1' is not defined
  6. '''

6. 列表计算

6.1 长度

len([1,2,6,’sxq’])

6.2 组合

print [1,2,22] + [22,33,44] # [1,2,22,22,33,44]

6.3 重复

x = [5]5 #[5, 5, 5, 5, 5]
y = [[1,’sxq’]]
5 #[[1, ‘sxq’], [1, ‘sxq’], [1, ‘sxq’], [1, ‘sxq’], [1, ‘sxq’]]
y[0] = [‘pp’] #变量——重新指针到其他list, [[‘pp’], [1, ‘sxq’], [1, ‘sxq’], [1, ‘sxq’], [1, ‘sxq’]]
y[1].append(‘ppp’) #对象——修改对象,后四个为同一个对象,修改一个,其他都应该变化,[[‘pp’], [1, ‘sxq’, ‘ppp’], [1, ‘sxq’, ‘ppp’], [1, ‘sxq’, ‘ppp’], [1, ‘sxq’, ‘ppp’]]

6.3.1 列表内元素为mutable(可变)对象是,使用列表重复要千万小心,只是同一个对象的几次重复;

6.4 元素存在

x = [5]*5
5 in x #True
‘5’ in x #False

6.5 迭代

x = [‘1’,2,’hello’]
for index in x: print index

7. 列表函数

7.1 cmp(list1,list2)

  • 返回为一个int,-1(list1小于list2),0(list1等于list2),1(list1大于list2);
  • 先比较list1/list2的第一个元素,list1大于list2则返回1,小于则返回-1,再比较第二个元素,依次类推,全部都相同则返回0;
  • 如果比较的元素是同类型的,则比较其值,返回结果;
  • 如果两个元素,如果是数字,强制转换为数字比较,通过类型名字的字母顺序进行比较;

7.2 len(list)获取列表长度

7.3 max(list)获取列表最大值,返回值类型和list里最大值类型一致

7.4 min(list)获取列表最小值,返回值类型和list里最小值类型一致

7.5 list(seq)将其他sequence转换为list

8. 列表方法

8.1 list.append(obj) 在列表末尾添加新的对象

8.2 list.count(obj) 统计某个元素在列表中出现的次数

list1 = [1,1,1,1,1,1,’1’,’shit’];list1.count(1)

8.3 list.extend(list) 在列表末尾一次性追加另一个list中的多个值(用新列表扩展原来的列表)

list1,list2 = [1,1,1,1,1,1,’1’,’shit’],[‘a’,’b’]
list1.extend(list2)
print list1 #[1, 1, 1, 1, 1, 1, ‘1’, ‘shit’, ‘a’, ‘b’]

8.4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,第一个很重要哦

[1, 1, 1, 1, 1, 1, ‘1’, ‘shit’, ‘a’, ‘b’].index(‘shit’) # 7

8.5 list.insert(index, obj) 将对象插入列表,插在index的前面,代替index;

list1 = [1, 1, 1, 1, 1, 1, ‘1’, ‘shit’, ‘a’, ‘b’]
list1.insert(7,’aaa’)
print list1 # [1, 1, 1, 1, 1, 1, ‘1’, ‘aaa’, ‘shit’, ‘a’, ‘b’]

8.6 list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list1 = [1, 1, 1, 1, 1, 1, ‘1’, ‘shit’, ‘a’, ‘b’]
list1.pop() # 默认删除最后一个元素,并返回该值
list1.pop(7) #’shit’ #[1, 1, 1, 1, 1, 1, ‘1’, ‘a’, ‘b’]

8.7 list.remove(obj) 移除列表中某个值的第一个匹配项

list1 = [1, 1, 1, 1, 1, 1, ‘1’, ‘shit’, ‘a’, ‘b’]
list1.remove(‘shit’)
print list1 # [1, 1, 1, 1, 1, 1, ‘1’, ‘a’, ‘b’]

8.8 list.reverse() 反向列表中元素

list1 = [1, 1, 1, 1, 1, 1, ‘1’, ‘shit’, ‘a’, ‘b’]
list1.reverse()
print list1 # [‘b’, ‘a’, ‘shit’, ‘1’, 1, 1, 1, 1, 1, 1]

8.9 list.sort([func]) 对原列表进行排序

比较复杂,请看list.sort()详细解析

9. 列表分片

list1 = [10,9,8,7,6,5,4,3,2,1,0]

9.1 对于list[x:y],或者其他sequence,不仅仅list,x必须出现的比y早;否则会返回一个空[]list,空sequence;

list1[:]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] #第0个到最后
list1[1:]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] #第一个到最后
list1[:1]
[10] #第0个到第一个
list1[:-1]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] #第0个到第-1个
list1[2:1]
[] #2比1出现的晚,返回空list
list1 = range(11)
list1.reverse() #ABC
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
list1[::2] #分片加入+步长
[10, 8, 6, 4, 2, 0]
list1[::-2] #分片加入-步长,负数步长只是加入reverse功能,反转list

9.2 实战例子,把一个list变成dict

list1 = [‘one’, 1, ‘two’, 2, ‘three’, 3, ‘four’, 4, ‘five’, 5]
list1_key = list1[0::2]
list1_value = list1[1::2]
dict1 = dict(zip(list1_key,list1_value))
print dict1 # {‘four’: 4, ‘three’: 3, ‘five’: 5, ‘two’: 2, ‘one’: 1}





转载于:https://www.cnblogs.com/lshconfigure/p/5861809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值