【发布时间】:2023-04-02 04:29:01
【问题描述】:
我想知道是否有一种特殊的方法可以让我获取一个列表元素 (["3D"]
),并使用 for 循环将其嵌套在另一个列表 ([["3D"]]
) 中,同时避免当前的类型转换我遇到的问题导致[["3","D"]]
。
为清楚起见,我已包含以下内容;
hand = ["3D", "4D", "4C", "5D", "JS", "JC"]
from itertools import groupby
def generate_plays(hand):
plays = []
for rank,suit in groupby(hand, lambda f: f[0]):
plays.append(list(suit))
for card in hand:
if card not in plays: #redundant due to list nesting
plays.append(list(card)) #problematic code in question
return plays
输出:
[['3D'], ['4D', '4C'], ['5D'], ['JS', 'JC'], ['3', 'D'], ['4', 'D'], ['4', 'C'], ['5', 'D'], ['J', 'S'], ['J', 'C']]
预期输出:
[['3D'], ['4D', '4C'], ['5D'], ['JS', 'JC'], ['4D'], ['4C'], ['5D'], ['JS'], ['JC']]
重申一下,这里的目的是在 for 循环中保持卡片元素的连接性。
非常感谢。
附:对于那些有兴趣的人,它是一个纸牌游戏的游戏生成器,可以玩单张纸牌和 2+ 个数字
【问题讨论】:
-
您能否将卡片存储为元组以避免这种情况?
-
可以简化创建列表
plays
。from operator import itemgetter
plays = [list(suit) for rank,suit in groupby(hand, itemgetter(0))]
标签:
python
string
list
type-conversion
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:将 Python str 中的连接元素保留为列表转换 - Python技术站