我只是想知道是否有可能在python中以某种方式隐藏字符串的一部分。我不是在谈论切片。我说的是我有“1somestring”的情况,而打印我获得“somestring”。在somestring之前的1应该对python可见但不可显示。或者将某种指示器粘在绳子上可能会很好。我想要实现的是自定义排序。我有字符串列表,我想通过在它们前面添加数字来对它们进行排序。排序将基于数字进行,因此数字后面我可以插入任何我想要的,但我不希望数字可见。提前感谢您的回答。
答案 0 :(得分:2)
您可以将它们存储在一个列表中,每个条目都包含一个指示顺序(从低到高)的元组,然后是字符串。此列表中的默认排序将按顺序排列。
words = [(1,"blah"), (3,"wibble"), (2,"splop")]
words.sort()
print(words)
[(1, 'blah'), (2, 'splop'), (3, 'wibble')]
print(" ".join(word[1] for word in words))
blah splop wibble
答案 1 :(得分:0)
我觉得很简单,比如你有一系列的事情:
['1something', '2more', '3another']
是使用空替换修改每个元素,然后打印:
import re
for item in list:
charonly = re.sub('[0-9]','', item)
print charonly
答案 2 :(得分:0)
这不需要"隐藏"字符串中的信息。它只需要在排序时将它们与您的其他信息(数字)相结合,这可以通过多种方式完成。这是一个:
# my strings, and the order I'd like them to have
my_strings = ["how", "there", "hello", "you", "are"]
my_ordering = [2, 1, 0, 3, 4]
# sort them
sorted_strings = [x for _, x in sorted(zip(my_ordering, my_strings))]
print(sorted_strings)
答案 3 :(得分:0)
您可以定义内置打印功能以外的打印功能。所以这可能不完全是寻求,你想做的事情在评论中有更好的解释。但这也是一种方式。
def print2(string):
print "".join(letter for letter in string if letter.isalpha())
在您的脚本中,如果限制打印功能的使用并仅使用您定义的那个。这可能是一个解决方案。
答案 4 :(得分:0)
我将在标题中提问: 假设我们的字符串是:
ceva="123Password"
如果要先隐藏2:
ceva=ceva[2:]
ceva将为'3Password'
现在让我们玩一下字符串列表:
lista=["abc","ghi","def"]
for _,x in enumerate(sorted(lista)):
print(str(_)+x)
0abc
1def
2ghi
或
lista=["abc","ghi","def"]
for _,x in enumerate(sorted(lista)):
lista[_]=str(_)+x
>>> lista
['0abc', '1def', '2ghi']