0
我對修改列表的輸入給出的兩個函數的行爲感到困惑。在我看來,兩者都應該做同樣的事情,但事實並非如此。請看:修改列表值
def headerFormat1(list1):
char_to_remove = ['(', ')']
list2 = list1[:]
list1 = []
for headers in list2:
headers = headers.replace(' ', '_')
for character in char_to_remove:
headers = headers.replace(character, '')
list1.append(headers)
del list2
return list1
def headerFormat2(list1):
char_to_remove = ['(', ')']
for i, headers in enumerate(list1):
list1[i] = headers.replace(' ', '_')
for character in char_to_remove:
list1[i] = headers.replace(character, '')
return list1
theList = ['I want Underscores Instead', 'R(e(m(o(v(e()P)a)r)e)n)t)h)e)s)e)s', 'LetMeBe']
print(headerFormat1(theList)) #prints: ['I_want_Underscores_Instead', 'RemoveParentheses', 'LetMeBe']
print(headerFormat2(theList)) #prints: ['I want Underscores Instead', 'R(e(m(o(v(e(Parentheses', 'LetMeBe']
我的意思是好的,第一個工作,它應該altough我發現名單重複多餘的,可能沒有必要\矯枉過正
但第二個(?)。 。圓括號去除有什麼奇怪的東西?此外,即使它不能正常工作,它也暗示修改列表元素就地是可能的(刪除')'),但爲什麼不替換空格?
謝謝。
因此,即使頭= headers.replace(」 ' '_')和headers.replace(' ','_')返回相同的值,但僅在第一種情況下才會更新標題。 ofc ...謝謝!一個看上去很好看的列表理解現在是目標,但我會嘗試單獨解決這個問題。 –