在Python中的特定索引处附加数组

时间:2016-12-16 19:48:03

标签: python arrays

我有这样的数组。

    [['Bob\n', 0], ['Joe\n', 0], ['Bill', 0], ['Steve', 0], ['Judy', 0]]

并且我想将其中一个零更改为1.例如,如何在Joe之后将.append指向0。我是python的新手,不幸的是目前无法使用numPy。另外,你如何摆脱一些列表末尾的愚蠢行为?

3 个答案:

答案 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]]