如何创建一个包含多个相同变量的列表,而不必键入每个变量?(python)

如何创建一个包含多个相同变量的列表,而不必键入每个变量?(python),python,list,Python,List,我需要一个代表黄道带日历的列表。它是一个小程序的一部分,接受用户输入的出生月份和出生日期。有办法做到这一点吗?我现在还穿着逻辑尿布,当谈到python时,我可能还在子宫里。我也已经被告知我不是一个很会蟒蛇的人…我知道 month = ["January","February","March","April","May","June", "July","August","September","October","November","December"] #The followin

我需要一个代表黄道带日历的列表。它是一个小程序的一部分,接受用户输入的出生月份和出生日期。有办法做到这一点吗?我现在还穿着逻辑尿布,当谈到python时,我可能还在子宫里。我也已经被告知我不是一个很会蟒蛇的人…我知道

month = ["January","February","March","April","May","June",
     "July","August","September","October","November","December"]


#The following is the list I am attempting to create
#I need it to represent 365 days but I don't want to type
#each zodiac sign thirty times. It would look ridiculous
#and would probably be considered illogical.

zodiac = [['Capricorn']*19,['Aquarius']*30,['Pisces']*30]

#You probably know with out running the above list that it only
#has three elements zodiac[0],[1],[2]... I need it to have 79.
#Is this possible?

dayOfYear= [0,31,59,90,120,151,181,212,243,273,304,334]
zodiacDay = int

birthmonth = int(raw_input('Enter your birth month(1-12): ')) - 1
while birthmonth <= 12:
    birthday = int(raw_input('Enter your birth day(1-31): '))
    while birthday < 32:
        zodiacDay = dayOfYear[birthmonth] + birthday
        print"""
You were born on the %r day of the year,
which is the %r of %s. Your Zodiac sign is %s.
""" % (dayOfYear[birthmonth] + birthday,birthday,month[birthmonth],
   zodiac[zodiacDay])
    birthmonth = int(raw_input('Enter your birth month(1-12): ')) - 1
month=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”,
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
#下面是我试图创建的列表
#我需要它来表示365天,但我不想键入
#每个星座30次。这看起来很可笑
#可能会被认为不合逻辑。
黄道带=[[摩羯座]*19,[[水瓶座]*30,[[双鱼座]*30]
#如果不运行上面的列表,您可能知道
#有三种元素黄道带[0]、[1]、[2]。。。我需要它有79个。
#这可能吗?
dayOfYear=[0,31,59,90120151181212243273304334]
黄道带日=int
birthmonth=int(原始输入('输入您的出生月份(1-12):'))-1

而birthmonth关于如何组合包含固定值的多个列表的主要问题:

zodiac = ['Capricorn']*19 + ['Aquarius']*30 + ['Pisces']*30
等等。这将连接字符串列表,而不是创建字符串列表。还有其他方法,但在我看来,这是最简单的,完全适合这种情况

对于其他建议-如果您喜欢使用一年中的某一天作为预先计算的值列表的索引,您可能会发现内置的
datetime.date
类的方法很有用

正如Marcin所建议的,使用范围通常是我解决这类问题的方法——按最早的天数存储符号值的索引,然后遍历该列表,直到找到一个小于或等于给定天数的索引。但是使用365元素列表来存储值并不可怕


如果你这么做不仅仅是为了学习,那么一定要考虑闰年。我对占星术还不够了解,不知道该推荐什么。

你可以使用范围。如果黄道带日比3月21日大,比4月19日低,比它的白羊座高,或者别的什么。要使用日期,请查看python中与时间和日期相关的部分。或者第三方包。这应该表示一个并行数组。添加几个if语句可能超出范围。模块和包不在我的范围之内。不过,我会看看他们。谢谢你是的!!!非常感谢。这只是一个没有闰年的学习练习。我还不太清楚,但我很感激你的建议。我还将介绍toordinal方法,当我谈到内置时,我也将介绍它。这就是我要找的@Marcin