我有一个列表,其中包含进一步的字符串列表,这些字符串可能代表单词(在字母数字意义上)或整数,例如
myLists = [['5','cat','23'],
['33','parakeet','scalpel'],
['correct','horse','battery','staple','99']]
我想解析数组,以便所有整数表示形式都转换为整数。我有一个简单的函数 numParser(string) 为此:
def numParser(s):
try:
return int(s)
except ValueError:
return s
凭借我的 c/java 背景,我通常只会迭代两个数组,更改每个值(尽管这些数组是同质的)。但我对 python 很陌生,认为可能有更好的方法来做到这一点,所以我四处搜索,发现了一些关于 map() 和列表理解的帖子。列表理解似乎不是正确的方法,因为列表不统一,但 map() 似乎应该可以工作。为了测试,我做了
a=['cat','5','4']
a = map(numParser, a)
这有效。我不假思索地在嵌套循环上做了同样的事情,但没有。
for single_list in myLists:
single_list = map(numParser, rawData)
现在,在收到未更改的二维数组后,我突然想到迭代器正在处理对数组的引用,而不是数组本身。有没有一种超级时髦的Python方法来实现我将所有整数表示转换为整数的目标,或者我是否需要直接访问每个数组值来更改它,例如myLists[1][2] = numParser(myLists[1][2])?