gpt4 book ai didi

python - "python way"解析并有条件地替换二维列表中的每个元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:31 26 4
gpt4 key购买 nike

我有一个列表,其中包含更多的字符串列表,这些字符串可能代表单词(在字母数字意义上)或整数,例如

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() 和列表理解的 SO 帖子。列表理解似乎不是可行的方法,因为列表不统一,但 map() 似乎应该有效。为了测试,我做了

a=['cat','5','4']
a = map(numParser, a)

哪个有效。没想到,我在嵌套循环上做了同样的事情,但没有。

for single_list in myLists:
single_list = map(numParser, rawData)

现在,在收到一个未更改的二维数组后,我突然想到迭代器正在处理对数组的引用,而不是数组本身。 是否有 super 时髦的 python 方法来实现我将所有整数表示形式转换为整数的目标,或者我是否需要直接访问每个数组值来更改它,例如myLists[1][2] = numParser(myLists[1][2])?

最佳答案

你可以用列表理解来做到这一点:

>>> [map(numParser, li) for li in myLists]
[[5, 'cat', 23], [33, 'parakeet', 'scalpel'], ['correct', 'horse', 'battery', 'staple', 99]]

关于python - "python way"解析并有条件地替换二维列表中的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31297107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com