Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环仅打印Python中的最后一个元素_Python_Python 3.x_List_Formatting - Fatal编程技术网

For循环仅打印Python中的最后一个元素

For循环仅打印Python中的最后一个元素,python,python-3.x,list,formatting,Python,Python 3.x,List,Formatting,我对for循环有问题。由于某种原因,当我执行循环时,它只打印出For循环的1个元素。这是我掌握的数据 lucidData = [['Dupable', '246', 'Mercedes', '25200'], ['Qilani', '240', 'Kanna', '21000'], ['MihKyle', '250', 'Mihile', '34750'], ['Goobtella', '245', 'Kanna', '27000'], ['Gosenka', '240', 'Buccaneer

我对for循环有问题。由于某种原因,当我执行循环时,它只打印出For循环的1个元素。这是我掌握的数据

lucidData = [['Dupable', '246', 'Mercedes', '25200'], ['Qilani', '240', 'Kanna', '21000'], ['MihKyle', '250', 'Mihile', '34750'], ['Goobtella', '245', 'Kanna', '27000'], ['Gosenka', '240', 'Buccaneer', '25762'], ['Eeldu', '244', 'Pathfinder', '33359'], ['YoungHanny', '249', 'Dual Blade', '36000'], ['Yumiikko', '248', 'Kanna', '32721'], ['lRollingDeep', '247', 'Adele', '29201'], ['LordPrime', '247', 'Kaiser', '33000'], ['GoiabaSama', '255', 'Demon Avenger', '964310'], ['GordoChorizo', '246', 'Dual Blade', '30387'], ['ScarletReyne', '251', 'Ark', '29651'], ['StupidGameu', '251', 'Demon Avenger', '31674'], ['TURTLESmrff', '242', 'Pathfinder', '2400'], ['Sleepybearrx', '240', 'IL Mage', '27953'], ['Wremy', '251', 'Hero', '35773'], ['woele', '245', 'Phantom', '33578'], ['Codé002', '240', 'Kanna', '22219'], ['FullSword', '250', 'Adele', '29548'], ['Ch0senAlpha', '242', 'Hero', '28521'], ['MeserMule', '254', 'Kanna', '33974'], ['KanaoSayo', '245', 'Kanna', '23000']]
当我使用这个for循环尝试去掉引号和方括号时:

def formatting(data):
  for i in range(len(data)):
    datas = ', '.join(data[i])
  return datas

print(formating(lucidData))
我只得到:

KanaoSayo, 245, Kanna, 23000
哪一个是列表中的最后一个元素,我不知道为什么或者如何解决这个问题

我的预期产出是

Dupable, 246, Mercedes, 25200
Quilani, 240, Kanna, 21000
...
KanaoSayo, 245, Kanna, 23000

循环的每次迭代都会覆盖变量“datas”。因此,您只获得最后一个值

若您需要一个包含所有元素的列表,请尝试下面的方法

datas = []
def formatting(data):
  for i in range(len(data)):
    datas.extend(, '.join(data[i]))
  return datas

打印(格式化(lucidData)

正如其他人已经指出的那样,您在每次迭代中覆盖
数据
对象,而您应该附加到上一次迭代的结果:

def formatting(data):
  datas = ''
  for elt in data:
      datas = ', '.join(elt) + '\n' + datas
  return datas

注意:我还修改了循环部分,以直接迭代元素,而不是基于索引访问列表。

您需要使用
连接列表中的条目,然后使用换行符连接结果

def formatting(data):
    result = []
    for entry in data:
        result.append(', '.join(entry))
    return '\n'.join(result)
使用生成器,您可以将其写入一行

def formatting(data):
    return '\n'.join(', '.join(entry) for entry in data)


使用索引访问
for
循环中列表的每个元素在Python中是一种反模式。这就是为什么我替换它并迭代元素本身。

我能想到的最简单的解决方案:

    lucidData = [['Dupable', '246', 'Mercedes', '25200'], ['Qilani', '240', 'Kanna', '21000'],
                 ['MihKyle', '250', 'Mihile', '34750'], ['Goobtella', '245', 'Kanna', '27000'],
                 ['Gosenka', '240', 'Buccaneer', '25762'], ['Eeldu', '244', 'Pathfinder', '33359'],
                 ['YoungHanny', '249', 'Dual Blade', '36000'], ['Yumiikko', '248', 'Kanna', '32721'],
                 ['lRollingDeep', '247', 'Adele', '29201'], ['LordPrime', '247', 'Kaiser', '33000'],
                 ['GoiabaSama', '255', 'Demon Avenger', '964310'], ['GordoChorizo', '246', 'Dual Blade', '30387'],
                 ['ScarletReyne', '251', 'Ark', '29651'], ['StupidGameu', '251', 'Demon Avenger', '31674'],
                 ['TURTLESmrff', '242', 'Pathfinder', '2400'], ['Sleepybearrx', '240', 'IL Mage', '27953'],
                 ['Wremy', '251', 'Hero', '35773'], ['woele', '245', 'Phantom', '33578'],
                 ['Codé002', '240', 'Kanna', '22219'], ['FullSword', '250', 'Adele', '29548'],
                 ['Ch0senAlpha', '242', 'Hero', '28521'], ['MeserMule', '254', 'Kanna', '33974'],
                 ['KanaoSayo', '245', 'Kanna', '23000']]
    
    
    def formatting(data):
        for i in data:
            print(', '.join(i))
    
    
    formatting(lucidData)

# OUTPUT:
Dupable, 246, Mercedes, 25200
Qilani, 240, Kanna, 21000
MihKyle, 250, Mihile, 34750
Goobtella, 245, Kanna, 27000
...............
MeserMule, 254, Kanna, 33974
KanaoSayo, 245, Kanna, 23000

请发布您的预期输出。您在循环的每次迭代中都会覆盖
数据
。您应该会收到语法错误,因为您的打印缺少右括号,这是真实的代码吗?这很有效,但对于我的特定项目,它不太符合我的需要。谢谢!