2016-12-16 52 views
0

我有一个这样的数组。在Python中的特定索引处附加数组

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

我想将其中一个零改成1.如何在Joe之后将.append指向0。我是python新手,不幸的是现在不能使用numPy。另外你如何摆脱那些愚蠢的\ n在几个名单的结尾?

+1

'change'和'append'具有不同的含义。您想要更改值还是附加新值? –

回答

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应用于 所有子列表的第一个元素。

+0

将零更改为1,而不是附加新的零。 OP不太清楚寿。 –

1

它不会让我发表意见,但我想添加到祖鲁语的回答:

>>>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] 
+0

我看到zulu更新了他的列表索引= P – appills

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

相关问题