如何在python

时间:2016-01-25 22:17:42

标签: python python-2.7

我只是想知道是否有可能在python中以某种方式隐藏字符串的一部分。我不是在谈论切片。我说的是我有“1somestring”的情况,而打印我获得“somestring”。在somestring之前的1应该对python可见但不可显示。或者将某种指示器粘在绳子上可能会很好。我想要实现的是自定义排序。我有字符串列表,我想通过在它们前面添加数字来对它们进行排序。排序将基于数字进行,因此数字后面我可以插入任何我想要的,但我不希望数字可见。提前感谢您的回答。

5 个答案:

答案 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']
相关问题