我有一个字符串,其中的单词用空格分隔(所有单词都是唯一的,没有重复).我将此字符串转换为列表:
s = "#one cat #two dogs #three birds"
out = s.split()
Run Code Online (Sandbox Code Playgroud)
并计算创建的值的数量:
print len(out) # Says 192
Run Code Online (Sandbox Code Playgroud)
然后我尝试从列表中删除所有内容:
for x in out:
out.remove(x)
Run Code Online (Sandbox Code Playgroud)
然后重新计算:
print len(out) # Says 96
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么它说96而不是0?
更多信息
每行以'#'开头,实际上是一对以空格分隔的单词:对中的第一个是键,第二个是值.
所以,我在做的是:
for x in out:
if '#' in x:
ind = out.index(x) # Get current index
nextValue = out[ind+1] # Get next value
myDictionary[x] = nextValue
out.remove(nextValue)
out.remove(x)
Run Code Online (Sandbox Code Playgroud)
问题是我不能将所有键,值对移动到字典中,因为我只迭代96个项目.
我了解到,这exit不是Python中的关键字,
import keyword
print('exit' in keyword.kwlist) # Output: False
Run Code Online (Sandbox Code Playgroud)
但是NameError: name 'exit' is not defined在使用它时没有任何提醒。以下代码段的输出使我感到困惑。谁能帮我吗?
for i in range(5):
print(i)
cur=i if i<2 else exit
print(cur)
# Output
0
1
2
3
4
Use exit() or Ctrl-D (i.e. EOF) to exit
Run Code Online (Sandbox Code Playgroud)
exit除了之外,我无法从Python文档中获取相关信息exit([code=None])。