在python中编写嵌套循环

时间:2016-01-18 20:51:04

标签: python loops nested nested-loops

我是一名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

但是我不能让这个数字起作用。任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:2)

您可以使用mapint转换为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时会导致错误。