在一行中打印不带括号的列表
- 2024-12-12 08:41:00
- admin 原创
- 174
问题描述:
我有一个 Python 列表,例如
names = ["Sam", "Peter", "James", "Julian", "Ann"]
我想在一行中打印数组,而不使用正常的“ []
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print (names)
将给出以下输出;
["Sam", "Peter", "James", "Julian", "Ann"]
那不是我想要的格式,而是我希望它是这样的;
Sam, Peter, James, Julian, Ann
注意:它必须在一行中。
解决方案 1:
print(', '.join(names))
听起来,这只是获取列表中的所有元素并将它们与连接起来', '
。
解决方案 2:
这是一个简单的。
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names, sep=", ")
星号解开列表并返回列表中的每个元素。
解决方案 3:
通用解决方案,适用于非字符串数组:
>>> print str(names)[1:-1]
'Sam', 'Peter', 'James', 'Julian', 'Ann'
解决方案 4:
如果输入数组是整数类型,那么您需要先将数组转换为字符串类型数组,然后使用join
方法进行连接,
或空格连接。例如:
>>> arr = [1, 2, 4, 3]
>>> print(", " . join(arr))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found
>>> sarr = [str(a) for a in arr]
>>> print(", " . join(sarr))
1, 2, 4, 3
>>>
直接使用 join 连接整数和字符串将引发错误,如上所示。
解决方案 5:
有两个答案,第一个是使用'sep'设置
>>> print(*names, sep = ', ')
另一个在下面
>>> print(', '.join(names))
解决方案 6:
尝试在打印语句中列表名称前使用星号:
names = ["Sam", "Peter", "James", "Julian", "Ann"]
print(*names)
输出:
Sam Peter James Julian Ann
解决方案 7:
这就是你所需要的
", ".join(names)
解决方案 8:
','.join(list)
仅当列表中的所有项目都是字符串时才有效。如果您希望将数字列表转换为逗号分隔的字符串。例如a = [1, 2, 3, 4]
,'1,2,3,4'
您可以
str(a)[1:-1] # '1, 2, 3, 4'
或者
str(a).lstrip('[').rstrip(']') # '1, 2, 3, 4'
尽管这不会删除任何嵌套列表。
将其转换回列表
a = '1,2,3,4'
import ast
ast.literal_eval('['+a+']')
#[1, 2, 3, 4]
解决方案 9:
对于整数类型的数组,我们需要先将其更改为字符串类型,然后使用连接函数来获得没有括号的干净输出。
arr = [1, 2, 3, 4, 5]
print(', '.join(map(str, arr)))
输出 - 1, 2, 3, 4, 5
对于字符串类型的数组,我们需要直接使用 join 函数来获得没有括号的干净输出。
arr = ["Ram", "Mohan", "Shyam", "Dilip", "Sohan"]
print(', '.join(arr)
输出 - Ram、Mohan、Shyam、Dilip、Sohan
解决方案 10:
打印(*名称)
如果您希望它们以空格分隔的方式打印出来,这在 Python 3 中是可行的。如果您需要逗号或其他任何分隔符,请继续使用 .join() 解决方案
解决方案 11:
您需要循环遍历列表并将end=" "
其保持在一行上
names = ["Sam", "Peter", "James", "Julian", "Ann"]
index=0
for name in names:
print(names[index], end=", ")
index += 1
解决方案 12:
尝试一下
print(*name)
我在 YouTube 上的AssemblyAI视频中找到了这一点,请观看此部分
解决方案 13:
我不知道这是否像其他方法一样有效,但简单的逻辑总是有效:
import sys
name = ["Sam", "Peter", "James", "Julian", "Ann"]
for i in range(0, len(names)):
sys.stdout.write(names[i])
if i != len(names)-1:
sys.stdout.write(", ")
输出:
萨姆、彼得、詹姆斯、朱利安、安
解决方案 14:
以下函数将接收一个列表并返回列表项的字符串。这可以用于记录或打印目的。
def listToString(inList):
outString = ''
if len(inList)==1:
outString = outString+str(inList[0])
if len(inList)>1:
outString = outString+str(inList[0])
for items in inList[1:]:
outString = outString+', '+str(items)
return outString