Python 列表到列(一维列表、多列)

Python 列表到列(一维列表、多列),python,string,python-3.x,list,format,Python,String,Python 3.x,List,Format,我正在尝试编写一个序列,以获取一个一维列表(无论大小),并将其打印成两列。到目前为止,我一直在返回一个“索引超出范围”错误 理想情况下,我希望它将[0]索引打印为标题(我已经将其写入序列),然后将其余索引打印为如下所示: - - - - - - - - - - - - - - - - - - - - - - - - - NAMES - - - - - - - - - - - - - - - - - - - - - - - - - Rudolph

我正在尝试编写一个序列,以获取一个一维列表(无论大小),并将其打印成两列。到目前为止,我一直在返回一个“索引超出范围”错误

理想情况下,我希望它将[0]索引打印为标题(我已经将其写入序列),然后将其余索引打印为如下所示:

- - - - - - - - - - - - - - - - - - - - - - - - -
                     NAMES
- - - - - - - - - - - - - - - - - - - - - - - - -
     Rudolph S.                    Vena U.
     Josef M.                      Efrain L.
     Joye A.                       Mee H.
     Joni M.                       Tanya E.
     Rachelle L.                   Garrett H.
到目前为止,我已经看到了很多使用.zip(*)和其他方法来做类似的事情,但通常涉及一个二维列表,我没有。有人知道如何改进这一点吗

spacing = '- ' * 25
data_list = [ "NAMES",
              "Rudolph S.",
              "Josef M.",
              "Joye A.",
              "Joni M.",
              "Rachelle L.",
              "Vena U.",
              "Efrain L.",
              "Mee H.",
              "Tanya E.",
              "Garrett H."]
while True:

    fname_prompt = input("First Name: ").strip().capitalize()

    if fname_prompt == "List" or fname_prompt == "list" or fname_prompt == "LIST":
        for item, val in enumerate(data_list):
            if item == 0:
                print(spacing)
                print('{:>27s}'.format(str(data_list[item])))
                print(spacing)

            else:
                if item <= len(data_list):
                    print('{:<10s}'.format(str(data_list[item]) + '{:>20s}'.format(str(data_list[item +1]))))
                else:
                    break
间距='-'*25
数据列表=[“名称”,
“鲁道夫S.”,
“约瑟夫·M.”,
“Joye A.”,
“Joni M.”,
“Rachelle L.”,
“美国静脉”,
“Efrain L.”,
“Mee H.”,
“Tanya E.”,
“加勒特H.”]
尽管如此:
fname_prompt=input(“名字:”).strip().capitalize()
如果fname_提示符==“列表”或fname_提示符==“列表”或fname_提示符==“列表”:
对于项,枚举中的val(数据列表):
如果项==0:
打印(间距)
打印(“{:>27s}.”格式(str(数据列表[项目]))
打印(间距)
其他:

如果项目您可以尝试以下格式:

print("{0:^40}".format(data_list[0]))
for i in range(1,len(data_list), 2):
   name1 = data_list[i]
   name2 = data_list[i+1]
   print("{0:<20}{1:>20}\n".format(name1, name2))
打印(“{0:^40}”。格式(数据列表[0]))
对于范围内的i(1,len(数据列表),2):
名称1=数据列表[i]
名称2=数据列表[i+1]
打印(“{0:20}\n.”格式(name1,name2))

您可以尝试以下格式:

print("{0:^40}".format(data_list[0]))
for i in range(1,len(data_list), 2):
   name1 = data_list[i]
   name2 = data_list[i+1]
   print("{0:<20}{1:>20}\n".format(name1, name2))
打印(“{0:^40}”。格式(数据列表[0]))
对于范围内的i(1,len(数据列表),2):
名称1=数据列表[i]
名称2=数据列表[i+1]
打印(“{0:20}\n.”格式(name1,name2))

希望下面的代码有帮助

if fname_prompt.lower() == "list":
    for item, val in enumerate(data_list):
        if item == 0:
            print(spacing)
            print('{:>27s}'.format(str(data_list[item])))
            print(spacing)

        else:
            cut_off = int((len(data_list)+1)/2)
            for i in range(1,int(len(dat_list)/2)):
                print (data_list[i], '\t\t\t' , data_list[cut_off+i])
您也可以更改第一个
if(item==0)
条件,但我会让您按照您希望的方式保留它。希望它有帮助


快乐编码:)

希望下面的代码有帮助

if fname_prompt.lower() == "list":
    for item, val in enumerate(data_list):
        if item == 0:
            print(spacing)
            print('{:>27s}'.format(str(data_list[item])))
            print(spacing)

        else:
            cut_off = int((len(data_list)+1)/2)
            for i in range(1,int(len(dat_list)/2)):
                print (data_list[i], '\t\t\t' , data_list[cut_off+i])
您也可以更改第一个
if(item==0)
条件,但我会让您按照您希望的方式保留它。希望它有帮助


快乐编码:)

软件包就是这样做的。具体地说,

软件包就是这样做的。特别是。

您可能会发现一些与表格相关的软件包很有用。可能的重复可能会发现一些与表格相关的软件包很有用。可能的重复不会产生所需的输出。第二列从中位数开始。只是必须从<切换到>,哇哦,我不是指间距。后续数组成员(i和i+1)不在同一行中。给定2n个元素的数组,第一个n在左侧,第二个n在右侧。这不会产生所需的输出。第二列从中位数开始。只是必须从<切换到>,哇哦,我不是指间距。后续数组成员(i和i+1)不在同一行中。给定2n个元素的数组,第一个n在左侧,第二个n在右侧。