新手勿喷
for i in open (v):
_temp = i.split('-')
self._i= gen.gen(_temp[0], _temp[1])
self._i 中是多个列表[] [] [] 怎样合并成一个
cc = []
for i in open (v):
_temp = i.split('-')
self= gen.gen(_temp[0], _temp[1])
for bbc in self:
cc.append(i)
这样解决的 !!!
怎样把结果赋值给 self._i
self._i = cc
print 出来是空白
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果你的意思是要合併多個 list 為一個,那使用
itertools.chain來串接是最好的,以下是個簡單的範例:對於你的 case 而言:
以下題外話。
@松林 的方法是可行的,而且效能不會差,在 python 中 擴增(增強)運算 和 一般運算 的行為不見得完全一模一樣,在這裡我們使用
+來討論。我們看一個例子:
由本例可以發現,
lst1 + lst2會產生一個新的 list,但是lst1 += lst2則不會,因為對於擴增運算,Python 大部分 會依循以下規則:不可變的型態會經由運算後產生一個新的 object,並且讓變數參考到該 object
可變的型態會採用 就地(in-place)運算 的方式來擴充或更新變數原本參考的 object
也就是說
lst1 += lst2等價於lst1.extend(lst2)這取決於該型態是否有實作
__iadd__(或__imul__...) 而不是只有實作__add__(或__mul__...)對於沒有實作
__iXXX__的型態,Python 會改呼叫__XXX__代替,這一定會運算出新的 object,但是__iXXX__則會就地更新原 object也就是說 大部分 的:
不可變型態都不會實作
__iXXX__,因為更新不可變型態的 object 是沒有道理的可變型態會實作
__iXXX__來就地更新為什麼我一直強調大部分呢?
因為 CPython 中優化了
str的擴增運算,str += other實在太常用了,在串接時,Python 並不會每次都複製字串我回答過的問題: Python-QA
使用extend函数,比如:
使用相加会直观一点,不过性能会差一点
这样是不是更加Pythonic?