如果我有這樣的點的2dlist ...從列表中索引選擇,但保留其他相關項目列表
myList=[['ab','0_3','-1','1'],['bm','2_1','-3','2'],['am','4_1','-1','3'],...]]
其中'-1','1'
例如是x,y座標(最後2列)我想只顯示其索引像這樣的列表的一部分...
[0] ab # I don't want to display the other list items, just the index and first col
[1] bm
[2] am
...這樣用戶就可以通過索引號選擇其中之一進行原點。我想我可以列舉這樣...
for row in enumerate(myList):
i, a= row
col= (i, a[0])
newList.append(col)
print cols
但是,一旦我讓用戶選擇一個即。用戶選擇'0'並設置變量origin='ab'
,如何獲得與原點相關的x,y(或[2],[3])列作爲原點座標(我需要能夠與列表的其餘部分)?
使用此方法,我可以以某種方式使用分配給選定點的變量,即。 origin = ab
,然後得到它的x,y,並將它們分配給x1,y1 ... 因爲枚舉給出了2個元組(i,a)並將它們追加到newList
,這就是我所有的newList
,或者我也可以追加其他列但不顯示它們? 我希望我的解釋是很清楚......我只有嚴重的屠殺碼ATM
所以,我終於拿到了這個最有...
import csv
myList=[]
try:
csvr = open('testfile.csv','r')
next(csvr, None)
theList = csv.reader(csvr)
for row in theList:
myList.append(row)
for row in enumerate(myList):
i, a = row
print i, a[0]
except IOError:
print 'Error!!!'
try:
choice = raw_input("Select a set: ") # Can also enter 'e'
if choice=='e'
print 'exiting'
else:
pass
user_choice = myList[int(choice)]
name, id, x, y= user_choice
print name, id,
return float(x), float(y)
except:
print 'error'
它打印效果與預期和我的工作現在可以返回x,y,這很棒,但它只是提示我輸入一個數字。有什麼建議麼?
「將通話僅僅是X1,Y1 = choiceFunction( )?並添加返回x,y到上面的代碼「......也許。當然,你可以這樣做。對我來說,似乎至少,csv文件名應該是一個choiceFunction()接受的參數,而不是沒有參數。沒有參數比擁有太多參數要好,但重要的是要考慮是否有任何事情是你真的應該作爲參數傳入的。 – kampu
對不起,我剛剛更新了我的文章 – user2395759
哦,男孩,那很愚蠢。我把它放在一個while循環中,現在看起來好像 – user2395759