从python中的列表中删除空格

Removing whitespace from a list in python

本问题已经有最佳答案,请猛点这里访问。

我目前正在用python编写一个密码程序,但我似乎无法解决这个问题:

1
2
3
4
5
word = ['a', 'b', 'c']
-----enciphering process-------
message = ['d', 'e', 'f']

print message[x],

我想发生的事情:

1
'def'

实际发生的情况:

1
'd e f'

我知道为什么会有这些空间,但我似乎无法摆脱它们,我尝试过使用strip、replace、re.sub、message(映射我不记得的内容)和".join"。这些都与预先确定的列表一起工作,但当我不知道列表将是什么时就不工作了。

请帮忙。

*编辑

我的意思是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Word = raw_input("Enter a word ")
Message = list(word)

w = raw_input("Enter a number ")
w = int(w)
n = len(message)

Letters = ['a', 'b', 'c', 'd' and so on until z]

For y in range(0,n):

   For index in range(0,26):

      X = index + w

      If x > 25:
         x = x - 26

      If message[y] == letters[index]:
         print letters[x],

不知道该如何摆脱这些空间,因为我不知道会有什么样的信息


print message[x],打印字符message[x],然后是一个空间(从技术上讲,是一个"虚拟"空间,由下一个print语句转换为一个空间)。如果你在一个循环中调用它,你将得到d e f

相反,print ''.join(message)


很难说什么不适合你。下面是它在交互式Python中的外观:

1
2
3
4
5
6
7
8
>>> message = ['d', 'e', 'f']
>>> print message
['d', 'e', 'f']
>>> print"".join(message)
def
>>> import sys
>>> sys.stdout.writelines(message)
def>>>

>>>开头的行是语句,其他行是输出。最后一行是没有换行的def,后面是>>>输入提示。


快速回答是

1
2
3
import sys
# ...
sys.stdout.write(letters[x])

但是您在如何构造代码方面有问题

您要对消息进行编码您应该将编码功能应用于该邮件例如

1
2
3
word="Hello"
encoded=''.join(map(lambda i: chr(ord(i) ^ 13), word))
print encoded