[英]convert letter from a list into a number depending on another list in python
[英]Python: Better way to take every letter/number/etc. from a string and convert it into a list?
我實際上知道如何使用loop
,但代碼看起來太丑了:-(。所以我想問一些更好的方法。
我有一個字符串:
a = "123 456 7sr"
我想將每個數字/字母/空格/等轉換為列表。 期望的結果應該是:
["1", "2", "3", " ", "4", "5", "6", " ", "7", "s", "r"]
還有其他一些方法嗎? (請不要使用for/while loop
)
謝謝您的幫助!
在任何地方都可以使用的直接方法是調用list
的構造函數,它將任何可迭代的(和str
是它們的字符的可迭代)轉換為迭代產生的值的list
:
list(a)
在Python 3.5+以及其他解包方案概括中 ,您可以選擇:
[*a]
這相當於list(a)
,除了它不需要查找並通過通用函數調用語義調用list
構造函數(使其稍微更快並使其免受意外行為更改,如果list
是名稱陰影,例如因為某人做了像list = [1,2,3]
這樣糟糕的事情。
所有其他方法(例如,無操作列表推導)都是這兩種方法的較慢,較為丑陋的版本。
這很簡單:
>>> a = "123 456 7sr"
>>> list(a)
['1', '2', '3', ' ', '4', '5', '6', ' ', '7', 's', 'r']
這可能不會更好,但另一種方法是使用列表理解:
a = "123 456 7sr"
print([e for e in a])
輸出:
['1', '2', '3', ' ', '4', '5', '6', ' ', '7', 's', 'r']
字符串是可迭代元素,因此將iteratable傳遞給列表的構造函數,然后它將返回一個列表。
>>a="123 456 7sr"
>>a=list(a)
>>print(a)
>>['1', '2', '3', ' ', '4', '5', '6', ' ', '7', 's', 'r']
>>print(type(a))
>>list
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.