2016-12-16 50 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]]

相關問題