печать данных / значений из списка словаря, который, в свою очередь, имеет список и словарь

#python

#python

Вопрос:

У меня есть список словарей, который, в свою очередь, получил список, в котором есть словарь. Я хочу напечатать все значения каждого элемента в списке в одной строке. Как это получить? Я не смог получить это. до сих пор вам удавалось печатать данные в наборе из 2 строк

 lst1=[
{'key1':'45','key2':'56', 'key3':[{'key4':'43','key5':'64', 'key9': 'ds', 'key10': 'as'},{'key6':'32'}], 'key7':'4r','key8':'h5'},
      {'key1':'ht','key2':'nm', 'key3':[{'key4':'lk','key5':'mm', 'key9': 'bv', 'key10': 'mk'},{'key6':'lo'}], 'key7':'ok','key8':'gh'},
      {'key1':'lp','key2':'ng', 'key3':[{'key4':'lk','key5':'jj', 'key9': 'ds', 'key10': 'kkl'},{'key6':'ki'}], 'key7':'nb','key8':'ip'},
      {'key1':'7y','key2':'jh', 'key3':[{'key4':'45','key5':'cv', 'key9': '3e', 'key10': 'lp'},{'key6':'lm'}], 'key7':'xz','key8':'jg'}]
x=[]

for j in range(len(lst1)):
        x.append(lst1[j]['key3'])
for g in range(len(lst1)):
    print (lst1[g]['key1'], lst1[g]['key7'])
for h in range(len(x)):
            print(x[h][0]['key4'], x[h][0]['key5'], x[h][1]['key6'], x[h][0]['key9'] )
                  
  

текущий вывод:

 45 4r
ht ok
lp nb
7y xz
43 64 32 ds
lk mm lo bv
lk jj ki ds
45 cv lm 3e
  

Пожалуйста, дайте мне знать, как получить желаемый результат (последние 3 строки должны быть добавлены к первым 3)

 45 4r 43 64 32 ds
ht ok lk mk bv mm
lp nb lk jj ki ds
7y xz 45 cv lm 3e
  

Я попытался напечатать 2-й набор внутри 1-го цикла набора, но это не сработало

 for j in range(len(lst1)):
        x.append(lst1[j]['key3'])
for g in range(len(lst1)):
    print (lst1[g]['key1'], lst1[g]['key7'])
    for h in range(len(x)):
            print(x[h][0]['key4'], x[h][0]['key5'], x[h][1]['key6'], x[h][0]['key9'] )        
  

Комментарии:

1. Не могли бы вы попробовать написать код с именами и значениями, которые, по-видимому, что-то значат? Это абстрактно и трудно следовать.

2. «Пожалуйста, дайте мне знать, как получить конечный результат (последние 3 строки должны быть добавлены к первым 3)» Что случилось с ht ok частью?

3. Какое правило говорит мне, что ht ok следует игнорировать строку вместо одной из первых четырех строк?

4. Согласно вашему коду, ht ok должен быть вывод.

5. И используйте print (lst1[g]['t1'], lst1[g]['t7'], end=' ') просто.

Ответ №1:

Я смог получить желаемый результат с помощью приведенного ниже :

 for g in range(len(lst1)):
    print (lst1[g]['key1'], lst1[g]['key7'], x[g][0].get('key4'), x[g][0].get('key5'), x[g][1].get('key6'), x[g][0].get('key9'))
  
 Output
======
45 4r 43 64 32 ds
ht ok lk mm lo bv
lp nb lk jj ki ds
7y xz 45 cv lm 3e
>>>