Вы можете использовать zip с распаковкой параметров, чтобы разделить списки непосредственно на переменные:
data = [["apple", "dog", "phone", "water", "black"],
["banana", "cat", "laptop", "milk", "pink"],
["melon", "bird", "computer", "juice", "green"]]
fruits,animals,techs,drinks,colours = map(list,zip(*data))
output:
print(fruits) # ['apple', 'banana', 'melon']
print(animals) # ['dog', 'cat', 'bird']
print(techs) # ['phone', 'laptop', 'computer']
print(drinks) # ['water', 'milk', 'juice']
print(colours) # ['black', 'pink', 'green']
, если вы хотите только фрукты или любые другие комбинации столбцов , вы можете просто игнорировать другие части:
fruits,*_ = map(list,zip(*data))
_,animals,_,drinks,_ = map(list,zip(*data))
Или вы можете превратить ваши данные в словарь:
keys = ("fruits","animals","techs","drinks","colours")
dataDict = { key:list(values) for key,values in zip(keys,zip(*data)) }
print(dataDict)
{
'fruits': ['apple', 'banana', 'melon'],
'animals': ['dog', 'cat', 'bird'],
'techs': ['phone', 'laptop', 'computer'],
'drinks': ['water', 'milk', 'juice'],
'colours': ['black', 'pink', 'green']
}