我正在創建一個公共方法來允許調用者將值寫入設備,例如將其稱爲write_vals()。將非迭代傳遞給list.extend()
由於這些值將被實時輸入,因此我希望通過允許用戶輸入列表或單個值來簡化用戶的生活,具體取決於他們需要編寫多少個值。例如:
write_to_device([1,2,3])
或
write_to_device(1)
我的功能我想用一個平面列表的工作,所以我試圖要高明和代碼是這樣的:
input_list = []
input_list.extend(input_val)
該作品當用戶輸入一個列表時可以游泳,但當用戶輸入一個整數時會失敗:
T ypeError:'int'對象是不可迭代的
使用list.append()會在列表傳入時創建一個嵌套列表,這將是一個額外的麻煩來扁平化。
檢查傳入的對象的類型看起來笨拙和非pythonic,並希望list.extend()將接受非迭代已經無處得到我。因此,嘗試了其他各種編碼方法。
建議(與編碼有關,請)非常感謝。
當你說用戶輸入列表或單個值時,這是否意味着你收到他們的輸入作爲單個字符串?你是否必須解析逗號? – quamrana 2010-04-06 21:15:00