亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除列表中的多余解析字符?

如何刪除列表中的多余解析字符?

肥皂起泡泡 2021-03-30 12:13:52
我有以下列表列表:animals = [('dog', 'cat'), ('mouse', 'bird')]我想將其簡化為:animals = ['dog', 'cat', 'mouse', 'bird']有沒有比做這樣的事情更簡單的方法來獲得上面的結果:animals = [('dog', 'cat'), ('mouse', 'bird')]final = []for a in animals:    final.append(a[0])    final.append(a[1])print final
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您可以使用itertools.chain.from_iterable:


>>> from itertools import chain

>>> list(chain.from_iterable(animals))

['dog', 'cat', 'mouse', 'bird']

或嵌套的list comprehension:


>>> [anim for item in animals for anim in item]

['dog', 'cat', 'mouse', 'bird']

對于小型列表,請使用列表理解版本,否則請使用itertools.chain.from_iterable。


>>> animals = [('dog', 'cat'), ('mouse', 'bird')]

>>> %timeit list(chain.from_iterable(animals))

100000 loops, best of 3: 2.31 us per loop

>>> %timeit [anim for item in animals for anim in item]

1000000 loops, best of 3: 1.13 us per loop


>>> animals = [('dog', 'cat'), ('mouse', 'bird')]*100

>>> %timeit list(chain.from_iterable(animals))

10000 loops, best of 3: 31.5 us per loop

>>> %timeit [anim for item in animals for anim in item]

10000 loops, best of 3: 73.7 us per loop


>>> animals = [('dog', 'cat'), ('mouse', 'bird')]*1000

>>> %timeit list(chain.from_iterable(animals))

1000 loops, best of 3: 296 us per loop

>>> %timeit [anim for item in animals for anim in item]

1000 loops, best of 3: 733 us per loop


查看完整回答
反對 回復 2021-04-06
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號