[Python] - List 列表实际操作

文章从简书转入,只因它已不再是以前的简书


image

The shortest distance between two people is a smile.
人与人之间最短的距离是微笑。


List 列表实际操作练习

1、List 定义
>>> list = ["Mazy", "Joy", "Vivian", "Vicky", "Eric"]
>>> list
['Mazy', 'Joy', 'Vivian', 'Vicky', 'Eric']

>>> list[3]
'Vicky'

2、List 负数索引
>>> list
['Mazy', 'Joy', 'Vivian', 'Vicky', 'Eric']

>>> list[-1]
'Eric'

>>> list[-3]
'Vivian'

>>> list
['Mazy', 'Joy', 'Vivian', 'Vicky', 'Eric']
>>> list[1:3]
['Joy', 'Vivian']

>>> list[1:-1]
['Joy', 'Vivian', 'Vicky']

>>> list[0:3]
['Mazy', 'Joy', 'Vivian']

3、List 增加元素
>>> list
['Mazy', 'Joy', 'Vivian', 'Vicky', 'Eric']

>>> list.append("Owen")
>>> list
['Mazy', 'Joy', 'Vivian', 'Vicky', 'Eric', 'Owen']

>>> list.insert(2,"Lora")
>>> list
['Mazy', 'Joy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen']

>>> list.extend(["666", "888"])
>>> list
['Mazy', 'Joy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888']

4、List 搜索
>>> list
['Mazy', 'Joy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888']

>>> list.index("Vicky")
4

>>> list.index("666")
7

>>> list.index("Joy")
1

>>> "555" in list
False

>>> list.index("555")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: '555' is not in list

5、List 删除元素
>>> list
['Mazy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888']

>>> list.insert(1, "Joy")
>>> list
['Mazy', 'Joy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888']

>>> list.insert(3, "666")
>>> list
['Mazy', 'Joy', 'Lora', '666', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888']

>>> list.remove("Joy")
>>> list
['Mazy', 'Lora', '666', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888']

>>> list.remove("666") # 删除首次出现的一个值
>>> list
['Mazy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '666', '888'] # 第二个 '666' 未删除

>>> list.pop() # pop 会做两件事: 删除 list 的最后一个元素, 然后返回删除元素的值。
'888'

>>> list
['Mazy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '666']

>>> list.remove("555")  #list 中没有找到值, Python 会引发一个异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

6、List 运算符
>>> list = ['Mazy', 'Lora', 'Vivian', 'Vicky']

>>> list = list + ['Eric', 'Owen']
>>> list
['Mazy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen']

>>> list += ["888"]
>>> list
['Mazy', 'Lora', 'Vivian', 'Vicky', 'Eric', 'Owen', '888']

>>> num = [1, 2] * 3
>>> num
[1, 2, 1, 2, 1, 2]

7.使用 Join 链接 List 成为字符串

join 只能用于元素是字符串的 list; 它不进行任何的类型强制转换。连接一个存在一个或多个非字符串元素的 list 将引发一个异常

>>> params = {"username":"Mazy", "password":"123456","uid":"001"}

>>> ["%s=%s" % (k, v) for k, v in params.items()]
['username=Mazy', 'password=123456', 'uid=001']

>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
'username=Mazy;password=123456;uid=001'

8、List 分割字符串
>>> list = ['username=Mazy', 'password=123456', 'uid=001']

>>> s = ";".join(list)
>>> s
'username=Mazy;password=123456;uid=001'

>>> s.split(";")
['username=Mazy', 'password=123456', 'uid=001']

>>> s.split(";",1)
['username=Mazy', 'password=123456;uid=001']

9、List 的映射解析
>>> li = [0, 8, 2 ,1]

>>> [elem*2 for elem in li]
[0, 16, 4, 2]
>>> li
[0, 8, 2, 1]

>>> li = [elem*2 for elem in li]
>>> li
[0, 16, 4, 2]

10、Dictionary中的解析
>>> params = {"username":"Mazy", "password":"123456","uid":"001"}

>>> params.keys()
['username', 'password', 'uid']

>>> params.values()
['Mazy', '123456', '001']

>>> params.items()
[('username', 'Mazy'), ('password', '123456'), ('uid', '001')]

>>> [k for k, v in params.items()]
['username', 'password', 'uid']

>>> [v for k, v in params.items()]
['Mazy', '123456', '001']

>>> ["%s=%s" % (k, v) for k, v in params.items()]
['username=Mazy', 'password=123456', 'uid=001']

11、List 过滤
>>> li = ["a", "ABC", "foo", "b", "y", "b", "d", "d"]

>>> [elem for elem in li if len(elem) > 1]
['ABC', 'foo']

>>> [elem for elem in li if elem != "b"]
['a', 'ABC', 'foo', 'y', 'd', 'd']

>>> [elem for elem in li if li.count(elem) == 1]
['a', 'ABC', 'foo', 'y']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值