sco*_*tin 3 python list python-3.x
我有一个 python 列表如下:
['item1','item2','item3']
Run Code Online (Sandbox Code Playgroud)
我正在尝试将列表中的项目重命名为
['person1','person2','person3']
Run Code Online (Sandbox Code Playgroud)
谁能指导我。谢谢
如果您想用特定值替换特定元素,请执行以下操作:
In [521]: items = ['item1','item2','item3']
In [522]: dic = {'item1':'person1', 'item2':'human', 'item3':'person3'}
In [523]: [dic.get(n, n) for n in items]
Out[523]: ['person1', 'human', 'person3']
Run Code Online (Sandbox Code Playgroud)
您可以使用replace更改"item"为"person",也可以使用列表推导式生成新列表。
items = ['item1','item2','item3']
people = [item.replace('item', 'person') for item in items]
Run Code Online (Sandbox Code Playgroud)
结果:
['person1', 'person2', 'person3']
Run Code Online (Sandbox Code Playgroud)
小智 2
考虑到速度和许多元素:
\n\n%%timeit\narr = ['item1', 'item2', 'item3']\narr = np.char.replace(arr, 'item', 'person')\nRun Code Online (Sandbox Code Playgroud)\n\n16.4 \xc2\xb5s \xc2\xb1 1.07 \xc2\xb5s 每个循环(平均 \xc2\xb1 标准偏差 7 次运行,每次 100000 次循环)
\n\n%%timeit\narr = ['item1', 'item2', 'item3']\narr = [x.replace('item', 'person') for x in arr]\nRun Code Online (Sandbox Code Playgroud)\n\n1.42 \xc2\xb5s \xc2\xb1 每个循环 174 ns(平均 \xc2\xb1 标准偏差 7 次运行,每次 1000000 次循环)
\n\n麻木: 177 ms \xc2\xb1 每个循环 15.4 ms(平均 \xc2\xb1 标准偏差 7 次运行,每次 1 次循环)
\n\n列表理解: 35.7 ms \xc2\xb1 每个循环 3.15 ms(平均 \xc2\xb1 标准偏差 7 次运行,每次 10 次循环)
\n\n甚至熊猫系列也更慢:
\n\n%%timeit\nseries.str.replace('item', 'person')\nRun Code Online (Sandbox Code Playgroud)\n\n144 ms \xc2\xb1 每个循环 4.47 ms(平均 \xc2\xb1 标准偏差 7 次运行,每次 10 个循环)
\n| 归档时间: |
|
| 查看次数: |
9047 次 |
| 最近记录: |