我是一名Python初学者,正在努力编写使用列表myList = [['A','B','C'],[4,5,6],[7,8,9]]
的代码并生成以下输出:
输入:
myList = [['A','B','C'],[4,5,6],[7,8,9]]
预期产出:(按行)
-A-B-C-
-4-5-6-
-7-8-9-
我尝试了一些不同的东西,但不知道如何在同一个列表中处理字符串和整数的汇合。
我可以得到:
>>> for i in range (0,myList_len):
... print ("-".join(myList[i]))
...
A-B-C
但是我不能让这个数字起作用。任何帮助将不胜感激!
答案 0 :(得分:2)
您可以使用map
将int
转换为str
for l1 in myList:
print '-' + '-'.join(map(str, l1)) + '-'
答案 1 :(得分:1)
当您尝试加入数字时,会出现以下错误:
if(file_exists($CACHE_FILE_PATH) && empty($customcolor)) {
$path = $CACHE_FILE_PATH;
$image = readfile($CACHE_FILE_PATH);
} else {
$image = imagecreatefromstring(file_get_contents($remote_image)); // Load the requested image
// ********************** CROP PIXELS
$imagesource = $image;
$removeLeft = 0.075 * $size;
$removeRight = 0.075 * $size;
$removeTop = 0.0375 * $size;
$removeBottom = 0.1125 * $size;
$image = imagecreatetruecolor(imagesx($imagesource) - ($removeLeft + $removeRight), imagesy($imagesource) - ($removeTop + $removeBottom));
imagecopy($image, $imagesource, 0, 0, $removeLeft, $removeTop, imagesx($image), imagesy($image));
imagedestroy($imagesource);
// ***************************
// Output the image
if (empty($customcolor)) {
imagejpeg($image, $CACHE_FILE_PATH, 93);
} else {
imagejpeg($image, NULL, 93);
}
}
imagedestroy($image);
exit();
这是因为TypeError: sequence item 0: expected str instance, int found
仅适用于iterable中的str.join()
个项目,但您将其传递给str
个对象。
因此,为了正确连接它们,您需要先将它们转换为字符串。您可以使用int
或使用列表理解在每个项目上调用str
来执行此操作:
map
答案 2 :(得分:0)
"加入"运算符需要一个字符串列表,因此您必须先使用" str"将数字转换为字符串。将任何东西变成字符串的运算符。
for l in myList:
print '-' + '-'.join([str(x) for x in l]) + '-'
答案 3 :(得分:0)
加入适用于字符串,而非数字。你需要转换:
.findIndex()
现在,只需在开始和结束时添加连字符,即可完成。
答案 4 :(得分:0)
尝试以下方法:
for sublist in myList:
print("-".join(map(str, sublist)))
输出结果为:
A-B-C
4-5-6
7-8-9
如果您还想要前导和尾随连字符,请使用:
for sublist in myList:
print("-" + "-".join(map(str, sublist)) + "-")
输出结果为:
-A-B-C-
-4-5-6-
-7-8-9-
for
循环遍历子列表。 map(str, sublist)
调用将str
应用于子列表的每个元素,并将其转换为字符串。如果没有这个,你的非字符串条目(即数字)在传递给join
时会导致错误。