python - 条件列表格式

时间:2013-03-25 21:58:02

标签: python string list python-3.x

在Python 3上,我试图编写一个函数format_list(items),它接受​​包含1或2个字符串元素的列表items并返回包含这些元素的字符串。 假设传递的列表将始终包含一个或两个元素(即,它不会为空,并且不会包含两个以上的元素)。

条件是:

  1. 如果列表包含单个元素,则该函数返回该元素,不变。
  2. 如果列表包含两个元素,则它们以单个字符串形式返回,第一个元素在宽度为10的字段中左对齐,后跟一个垂直条('|'),后跟第二个元素在字段中右对齐width 10.您可以假设元素是每个最多10个字符的字符串。
  3. 所以print(format_list(['abc']))会产生:

    abc
    

    print(format_list(['Dave', '14']))会产生:

    Dave   |   14
    

    我不知道从哪里开始......

3 个答案:

答案 0 :(得分:1)

这听起来像是家庭作业,所以有一些线索可以让你前进:

  • % formatting(例如"Hello %s!" % some_var - > "Hello World!" if some_var == "World"

  • len(some_list) - >列表中的项目数

哦,因为我不想查一查:

"%10s" % 'word' - > ......word(点是空格)

"%-10s" % 'word' - > word......

答案 1 :(得分:0)

def format_list(l):
    if len(l)==1: return l[0]
    else:
        return '{:<10}|{:>10}'.format(l[0],l[1])

for l in [['abc'],['Dave', '14']]:        
    print(format_list(l)) 

打印:

abc
Dave      |        14

查看.format方法和.format mini language

答案 2 :(得分:-1)

def format_list(my_list)
    try:
        return my_list[0].ljust(10) + '|' + my_list[1].rjust(10)
    except IndexError: return my_list