由Martijn Pieters回答.谢谢.
这是因为声明与表达.并且因为.join()不变异(是纯函数),所以需要将其赋值给变量.
问题:
这种奇怪的原因是什么?
目标:
if base == 'T':
RNA_seq += 'U'
else:
RNA_seq += base
Run Code Online (Sandbox Code Playgroud)
以下方法有效:
# += in expression1 and .join() in expression2
RNA_seq += 'U' if base == 'T' else RNA_seq.join(base)
# Edit note: RNA_seq.join(base) works because it returns `base`
# aka. RNA_seq += 'U' if base == 'T' else base
Run Code Online (Sandbox Code Playgroud)
但是以下不起作用:
# Using += on both expressions
RNA_seq += 'U' if base == 'T' else RNA_seq += base
Run Code Online (Sandbox Code Playgroud)
要么
# Using .join() for both expressions …Run Code Online (Sandbox Code Playgroud)