例如:我有一个充满整数的列表。 我需要从模板打印它(with ' '之间)只有一个 print():
>*sorted(lst)
>*reversed(lst)
由于解包列表,我无法使用 sep 或 f-string。我找到了一个暴力破解的方法。
int_lst = [4, 5, 2, 1]
lst = sorted(int_lst)
print(" ".join(str(i) for i in lst) + "\n" + " ".join(str(j) for j in reversed(lst)))
>1 2 4 5
>5 4 2 1
有没有办法让它更漂亮更短?
一种方法可以是:
int_lst = [4, 5, 2, 1]
lst = sorted(int_lst)
str_lst = [str(i) for i in lst]
print(" ".join(str_lst) + "\n" + " ".join(str_lst[::-1]))
#output
1 2 4 5
5 4 2 1
这会让它变得更短、更清晰:
print(f"{str(lst)[1:-1]} \n{str(lst[::-1])[1:-1]}")
必须使用字符串的 [1:-1] 来删除列表的括号,
str(lst) = "[element1, element2, ..., elementN]"
。