将列表转换为格式化字符串 - 更新

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将列表转换为格式化字符串 - 更新相关的知识,希望对你有一定的参考价值。

我一直在尝试编写一个python代码,它会自动从我的选择属性(drf)中给我一个列表

看起来像这样:

2011/2012
2012/2013
2013/2014
2014/2015
2015/2016
...

但我残酷地失败了。下面是我的代码(没有做任何合理的事情)

x = xrange(2011, 2015)
y = xrange(2012, 2016)
z = '%5d / %5d' % (x, y) 
print '
'.join(z)

谢谢你的帮助。还有一件事所以我试着在我的drf模型中将我的输出属性放入我的选择属性中,它除了当我放置时它没有给我任何错误消息

Print z

它包括我运行时服务器控制台中的输出

Python manage.py runserver

这是我下面的代码,我想确定我做的是正确的

class studentship(models.Model):
      def datechoice():
             x = xrange(2011,2016)
             y = xrange(2012,2017)
             for tup in zip(x,y):
                    z = '%d/%d' %(tup[0], tup[1])

      pick_date = (datechoice())
      enroll = models.Charfield(max_Length = 1, choices = 
      pick_date, default = 'select school session')

谢谢你的帮助,我保证会急忙改进我的python。

答案

您不能使用字符串格式来获取字符串列表。你必须显式写一个for循环:

x = xrange(2011, 2015)
y = xrange(2012, 2016)
z = ['%5d / %5d' % (a, b) for a,b in zip(x,y)] 
print '
'.join(z)
另一答案

虽然,你的问题有点不清楚,试试这个:

for x in range(2011, 2016):
    print("{}/{}".format(x, x+1))

输出:

2011/2012
2012/2013
2013/2014
2014/2015
2015/2016
另一答案

将每个范围增加一年

x = xrange(2011, 2016) # 2016 is exclusive
y = xrange(2012, 2017)

# Use zip() to get tuples of years, one each from x and y
# print list(zip(x, y))
# [(2011, 2012), (2012, 2013), (2013, 2014), (2014, 2015), (2015, 2016)]

# Using zip(), loop through x and y
for tup in zip(x, y):
    z = '%d/%d' % (tup[0], tup[1])
    print z

2011/2012
2012/2013
2013/2014
2014/2015
2015/2016
>>>

以上是关于将列表转换为格式化字符串 - 更新的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 将日期格式的字符串列表/向量转换为 posix 日期类

如何将字符串转换为日期时间格式

为 Blogger 上的博客格式化代码片段 [关闭]

在 python 中保持格式的同时将字符串列表转换为整数

Terraform - 如何将列表转换为地图(如何使用 terraform 获取 AMI 标签)

js常用代码片段(更新中)