我想获取列表元素并删除最终字符。总体目标是将剩余的数字从str
转换为int
以获得等式。我想这个:
hand = ['1D', '5S', '10H']
first_card = hand [0]
first_card [:-1]
print [first_card]
......是这样做的方式,但显然不是。
提前感谢您提供的任何帮助。
弗雷泽
答案 0 :(得分:6)
这可以通过列表理解为所有元素完成。
>>> hand = ['1D', '5S', '10H']
>>> hand2 = [i[:-1] for i in hand]
>>> hand2
['1', '5', '10']
您也可以在同一时间轻松将其转换为整数:
>>> handints = [int(i[:-1]) for i in hand]
>>> handints
[1, 5, 10]
答案 1 :(得分:2)
如果字符串包含朝向结尾的多个字符。
from itertools import takewhile
map(lambda x: "".join(list(takewhile(lambda x: x.isdigit(),x))), ['1D', '5S', '10H'])
或使用列表理解
[int("".join(list(takewhile(lambda x: x.isdigit(),x)))) for x in ['1D', '5S', '10H']]
答案 2 :(得分:1)
使用map
来解决列表中每个元素的简单操作:
list(map(lambda x: x[:-1],hand))