我试图在python中创建一个很好的列列表,用于我创建的命令行管理工具.
基本上,我想要一个列表,如:
[['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]
Run Code Online (Sandbox Code Playgroud)
变成:
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
Run Code Online (Sandbox Code Playgroud)
使用普通标签不会在这里做,因为我不知道每行中最长的数据.
这与Linux中的'column -t'行为相同.
$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c"
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c" | column -t
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c
Run Code Online (Sandbox Code Playgroud)
我已经四处寻找各种python库来做到这一点,但找不到任何有用的东西.
假设我有一个cp1251编码的Python 3源文件,其中包含以下内容:
# ????? (some Russian comment)
print('Hehehey')
Run Code Online (Sandbox Code Playgroud)
如果我运行该文件,我会得到这个:
SyntaxError: Non-UTF-8 code starting with '\xfd' in file ... on line 1 but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
这是明确的和预期的 - 我理解,通常,cp1251字节序列不能用UTF-8解码,UTF-8是Python 3中的默认编码.
但是如果我按如下方式编辑文件:
# coding: utf-8
# ????? (some Russian comment)
print('Hehehey')
Run Code Online (Sandbox Code Playgroud)
一切都会好起来的.
这非常令人困惑.
在第二个例子中,我在源代码中仍然有相同的cp1251字节序列,这在UTF-8中无效,我希望编译器应该使用相同的编码(UTF-8)来预处理文件并以相同的错误终止.
我已经阅读了PEP 263,但仍然没有得到它没有发生的原因.
那么,为什么我的代码在第二种情况下工作并在第一种情况下终止?
UPD.
为了检查我的文本编辑器是否足够聪明,因为该行更改了文件的编码# coding: utf-8,让我们看看实际的字节:
(第1个例子)
23 20 fd fe ff fa fc ...
Run Code Online (Sandbox Code Playgroud)
(第2个例子)
23 20 63 6f 64 69 6e 67 3a 20 75 74 …Run Code Online (Sandbox Code Playgroud) 我有一个Python列表,并且只有一个元素重复三次。我想用独特的元素代替它们。
my_list = [,...,'future_use',...,'future_use',..'future_use',...]
Run Code Online (Sandbox Code Playgroud)
预期输出:
[,...,'future_use1',...,'future_use2',..'future_use3',...]
Run Code Online (Sandbox Code Playgroud)
我尝试使用列表理解:
count = my_list.count("future_use")
for i in range(1, count+1):
my_list = [item.replace("future_use","future_use%r" %i,i) for item in my_list]
Run Code Online (Sandbox Code Playgroud)
但是,我没有得到期望的输出,有人可以指出我正确的程序吗?
尝试使用以下代码检查字符串:
def check_password(x):
if has_unique_letters(x) == False:
print "Warning! Please ensure letters are not repeated."
if has_even_vowels(x) == False:
print "Warning! Please ensure password contains an even number of vowels."
if has_special_character(x) == False:
print "Warning! Please ensure password contains at least one of {@, #, *, $}"
if has_divisible_numbers(x) == False:
print "Warning! Please ensure all numbers are divisible by 2 or 3."
print "Sorry, your password does not meet our criteria."
print "Congratulations, your password meets our criteria." …Run Code Online (Sandbox Code Playgroud)