根据不同的长度向键添加值

时间:2017-07-16 20:20:02

标签: python python-3.x

我正在尝试在制作字典后为键添加值。

这是我到目前为止所做的:

movie_list = "movies.txt"  # using a file that contains this order on first line: Title, year, genre, director, actor 
in_file = open(movie_list, 'r')
in_file.readline()

def list_maker(in_file):
    movie1 = str(input("Enter in a movie: "))
    movie2 = str(input("Enter in another movie: "))

    d = {}
    for line in in_file:  
        l = line.split(",")
        title_year = (l[0], l[1]) # only then making the tuple ('Title', 'year')
        for i in range(4, len(l)):
            d = {title_year: l[i]} 

        if movie1 or movie2 == l[0]:
            print(d.values())

我得到的输出:

Enter in a movie: 13 B
Enter in another movie: 1920
{('13 B', '(2009)'): 'R. Madhavan'}
{('13 B', '(2009)'): 'Neetu Chandra'}
{('13 B', '(2009)'): 'Poonam Dhillon\n'}
{('1920', '(2008)'): 'Rajneesh Duggal'}
{('1920', '(2008)'): 'Adah Sharma'}
{('1920', '(2008)'): 'Anjori Alagh\n'}
{('1942 A Love Story', '(1994)'): 'Anil Kapoor'}
{('1942 A Love Story', '(1994)'): 'Manisha Koirala'}
{('1942 A Love Story', '(1994)'): 'Jackie Shroff\n'}
.... so on and so forth. I get the whole list of movies. 

如果我想要输入这两部电影(任何2部电影作为键的值(movie1,movie2)的组合),我将如何这样做?

示例:

{('13 B', '(2009)'): 'R. Madhavan', 'Neetu Chandra', 'Poonam Dhillon'}
{('1920', '(2008)'): 'Rajneesh Duggal', 'Adah Sharma', 'Anjori Alagh'}

1 个答案:

答案 0 :(得分:0)

很抱歉,如果输出完全不是你想要的,但是你应该怎么做:

d = {}
for line in in_file:  
    l = line.split(",")
    title_year = (l[0], l[1])
    people = []
    for i in range(4, len(l)):
        people.append(l[i]) # we append items to the list...
    d = {title_year: people} # ...and then make the dict so that the list is in it. 

    if movie1 or movie2 == l[0]:
        print(d.values())

基本上,我们在这里做的是我们正在制作一个列表,然后将列表设置为dict内的一个键。