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

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

拉出位于數組中的多個字符串的特定部分。

拉出位于數組中的多個字符串的特定部分。

郎朗坤 2021-09-14 16:47:39
我正在嘗試為保存在數組中的每個記錄提取記錄中的第一個數字(wins-losses-ties)。例如:該數組可能如下:[2-2-3, 4-5-2, 1-3-8]??紤]到我想提取獲勝次數的所有值并將它們分配給一個新數組,我希望最終得到的數組是以下 [2, 4, 1]。我怎么能在我的 python 代碼中做到這一點?
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

result = next(zip(*[(2,2,3), (4,5,2), (1,3,8)]))

或者,如果記錄實際上是字符串:

result = next(zip(*(data.split('-') for data in ['2-2-3', '4-5-2', '1-3-8'])))

解釋:

>>> list(zip(*[(2,2,3), (4,5,2), (1,3,8)]))
[(2, 4, 1), (2, 5, 3), (3, 2, 8)]

你想得到第一個元素,所以你可以這樣做list(zip(*[(2,2,3), (4,5,2), (1,3,8)]))[0],但這不是必需的,因為zip它是即時構造它的返回值,并且不會一次計算所有它們(所以它不會浪費內存),所以你可以讓它生成并返回第一個值next(zip(...))


查看完整回答
反對 回復 2021-09-14
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

嘗試這個:


arr = ['2-2-3', '4-5-2', '1-3-8']

result = [s.split('-')[0] for s in arr]

解釋:


[s for s in arr]

# output: ['2-2-3', '4-5-2', '1-3-8']


[s.split('-') for s in arr]

# output: [['2', '2', '3'], ['4', '5', '2'], ['1', '3', '8']]


[s.split('-')[0] for s in arr]

# output: ['2', '4', '1']


查看完整回答
反對 回復 2021-09-14
  • 2 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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