2014-09-25 14 views
3

我試圖把正數的列表與相同值負數的列表在Python 3.3.3Python的 - 如何將列表中的所有號碼到他們的負同行

例如把[ 1,2,3]到[-1,-2,-3]

謝謝您的幫助

我有這樣的代碼:

xamount=int(input("How much of x is there")) 
integeramount=int(input("How much of the integer is there")) 
a=1 
lista=[] 
while(a<=integeramount): 
    if(integeramount%a==0): 
     lista.extend([a]) 
    a=a+1 
listb=lista 
print(listb) 
[ -x for x in listb] 
print(listb) 

這將打印兩個相同的名單時,我想一個是posi略去,一個爲負

+1

做'數組listB = -x對於x在LISTA]'我在答覆建議。 – Anton 2014-09-26 17:33:42

回答

9

最自然的方法是使用列表理解:如果要修改到位名單

mylist = [ 1, 2, 3, -7] 
myneglist = [ -x for x in mylist] 
print(myneglist) 

給人

[-1, -2, -3, 7] 
+0

不幸的是,當輸入到shell中時,它會起作用,但是當放到代碼中時它不起作用,是否有替代方法? – SamRob85 2014-09-25 19:37:03

+0

你錯了。所有在shell中工作的東西都可以「在代碼中」工作。如果你有什麼不起作用並需要幫助,你需要發佈代碼來顯示你正在嘗試做什麼。 – Anton 2014-09-26 00:31:53

+1

@Anton:不要把'>>>'放到代碼中。否則,它必須與可能找到的最老的Python一起工作。唯一的問題可能是它創建了新的列表。它不會修改現有的。 – pepr 2014-09-26 07:26:46

1

mylist = [ 1, 2, 3, -7] 
print(mylist) 
for i in range(len(mylist)): 
    mylist[i] = -mylist[i] 
print(mylist) 
0

還有這種方法:

值得注意的是,只有所有數字都是正數,這纔會起作用。它不會影響0.如果你有負數你不想改變,你需要添加下面的IF語句。

if num < 0: continue 
numbers = [1, 2, 3, 4 ,5] 
for num in numbers: 
    numbers[num-1] = num - (2*num) 

numbers 
[-1, -2, -3, -4, -5] 
2

您可以使用numpy的軟件包,並做numpy.negative()

相關問題