Python:ASCII 字母切片和拼接
Python: ASCII letters slicing and concatenation
我试图从字母表的开头剪下 3 个字母并将其放在末尾,但我得到了一个奇怪的结果。到目前为止,这是我的代码...
import string
upper = string.ascii_uppercase
upperNew = upper[:3] + upper[3:]
print upperNew
a = upper[:3]
b = upper[3:]
c = b+a
print c
运行 此代码得到:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
为什么打印 upperNew 的结果与打印 c 的结果不同?
我的代码中的愚蠢错误:
upperNew = upper[:3] + upper[3:]
应该是...
upperNew = upper[3:] + upper[:3]
感谢 thefourtheye 等人
我认为您误解了列表的“:”符号。
upper[:3]
给出 first 3 个字符,而
upper[3:]
给你整个列表 但 前 3 个字符。
最后你得到:
upperNew = upper[:3] + upper[3:]
= 'ABC' + 'DEFGHIJKLMNOPQRSTUVWXYZ'
将它们相加后得到 upperNew
,得到字母表。
在 a
和 b
中第二次发生同样的事情,但是你以相反的顺序连接它们,所以你得到 'DEFGHIJKLMNOPQRSTUVWXYZ' + 'ABC'+
这可能就是你看起来很困惑的原因.
如果你想upperNew
得到相同的结果,你必须这样做:
upperNew = upper[3:] + upper[:3] # Note I switched the right part
print upperNew
然后按预期打印 'DEFGHIJKLMNOPQRSTUVWXYZABC'
。
我试图从字母表的开头剪下 3 个字母并将其放在末尾,但我得到了一个奇怪的结果。到目前为止,这是我的代码...
import string
upper = string.ascii_uppercase
upperNew = upper[:3] + upper[3:]
print upperNew
a = upper[:3]
b = upper[3:]
c = b+a
print c
运行 此代码得到:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
为什么打印 upperNew 的结果与打印 c 的结果不同?
我的代码中的愚蠢错误:
upperNew = upper[:3] + upper[3:]
应该是...
upperNew = upper[3:] + upper[:3]
感谢 thefourtheye 等人
我认为您误解了列表的“:”符号。
upper[:3]
给出 first 3 个字符,而upper[3:]
给你整个列表 但 前 3 个字符。
最后你得到:
upperNew = upper[:3] + upper[3:]
= 'ABC' + 'DEFGHIJKLMNOPQRSTUVWXYZ'
将它们相加后得到 upperNew
,得到字母表。
在 a
和 b
中第二次发生同样的事情,但是你以相反的顺序连接它们,所以你得到 'DEFGHIJKLMNOPQRSTUVWXYZ' + 'ABC'+
这可能就是你看起来很困惑的原因.
如果你想upperNew
得到相同的结果,你必须这样做:
upperNew = upper[3:] + upper[:3] # Note I switched the right part
print upperNew
然后按预期打印 'DEFGHIJKLMNOPQRSTUVWXYZABC'
。