Martijn Pieters 回答。谢谢你。
这是因为语句与表达式。而且因为 .join() 不会变异(是一个纯函数),所以需要赋值给一个变量。
问题:
这种奇怪的原因是什么?
目标:
if base == 'T':
RNA_seq += 'U'
else:
RNA_seq += base
以下方法有效:
# += 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
但是以下方法不起作用:
# Using += on both expressions
RNA_seq += 'U' if base == 'T' else RNA_seq += base
或者
# Using .join() for both expressions
RNA_seq.join('U') if base == 'T' else RNA_seq.join(base)
Python2 和 Python3 的结果相同。