我有这样的数组。
[['Bob\n', 0], ['Joe\n', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
并且我想将其中一个零更改为1.例如,如何在Joe之后将.append指向0。我是python的新手,不幸的是目前无法使用numPy。另外,你如何摆脱一些列表末尾的愚蠢行为?
答案 0 :(得分:2)
您可以使用list
索引:
>>> mylist = [['Bob\n', 0], ['Joe\n', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
>>> mylist[1][1] = 'new_value'
>>> mylist
[['Bob\n', 0], ['Joe\n', 'new_value'], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
在
mylist
,在第二个元素(1)中,在子列表的第二个元素中,我设置'new_value'
对于\n
,您可以使用str.strip
:
>>> mylist = [['Bob\n', 0], ['Joe\n', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
>>> mylist = [[i.strip(), j] for i, j in mylist]
>>> mylist
[['Bob', 0], ['Joe', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
使用list-comprehension并将
strip
应用于第1个元素 所有子列表。
答案 1 :(得分:1)
它不会让我发表评论,但我想补充一下zulu的答案:
>>>mylist = [['Bob\n', 0], ['Joe\n', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
#so far so good, but change mylist[1][0] to mylist[1][1]
>>>mylist[1][1] = 1
>>>mylist
[['Bob\n', 0], ['Joe\n', 1], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
你可以使用[int]访问列表的元素 所以,mylist [1]是mylist的元素。 mylist [1]也恰好是一个列表。我们这样说(假设我还没改变价值):
>>>inside_list = mylist[1]
>>>inside_list
['Joe\n', 0]
现在我可以访问此内部列表了。 0是我要替换的数字,在索引1处,所以我们可以这样做:
>>>inside_list[1] = 1
>>>inside_list
['Joe\n', 1]
作为旁注,因为0是一个整数,你也可以这样做:
>>>inside_list[1]+=1
>>>inside_list
['Joe\n', 1]
答案 2 :(得分:0)
>>>input = [['Bob\n', 0], ['Joe\n', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]
>>>output = map(lambda x: [x[0].rstrip(), x[1] or 1], input)
>>>output
>>>[['Bob', 1], ['Joe', 1], ['Bill', 1], ['Steve', 1], ['Judy', 1]]