Есть ли способ объединить два ключа в один? питон

Вы можете сделать это с помощью памяти кучи (через вызов malloc () ), как и другие ответы, описанные здесь, но вы всегда должны управлять памятью (используйте функцию free () каждый раз, когда вы вызываете свою функцию). Вы также можете сделать это со статическим массивом:

char* returnArrayPointer() 
{
static char array[SIZE];

// do something in your array here

return array; 
}

Вы можете использовать его, не беспокоясь об управлении памятью.

int main() 
{
char* myArray = returnArrayPointer();
/* use your array here */
/* don't worry to free memory here */
}

В этом примере вы должны использовать статическое ключевое слово в определение массива, чтобы установить продолжительность жизни массива в приложении, поэтому он не будет уничтожен после оператора return. Разумеется, таким образом вы занимаете байты SIZE в своей памяти на весь срок службы приложения, поэтому его размер будет правильным!

0
задан tejosa 15 January 2019 в 18:46
поделиться

3 ответа

Вы можете составить желаемый список путем понимания списка:

d2=[
{'Name': 'Joe', 'Id': '001',  'Major': 'Math'},
{'Name': 'Kyle', 'Id': '002',  'Major': 'Coms'}
]
d3={x['Name']+" "+x['Id'] : x['Major'] for x in d2}

print (d3)

#{'Joe 001': 'Math', 'Kyle 002': 'Coms'}
0
ответ дан Mehrdad Dowlatabadi 15 January 2019 в 18:46
поделиться

Как заметил пользователь roganjosh, лучший способ - создать ключи кортежей.

Это делается путем зацикливания ваших рядов и добавления к этому слова.

my_dict = {}
for row in rows:
    my_dict[(row.Name, row.Id)] = row.Major

НЕ просто добавляйте их как строки. Поскольку Name и Id уникальны друг для друга, нет никакой гарантии, что их конкатенация также уникальна. EX. Имя: joe0 Id: 01 и Name: joe Id: 001 совпадают при объединении. Сохраните их как кортежи, чтобы быть в безопасности.

0
ответ дан Kaiwen Chen 15 January 2019 в 18:46
поделиться

Предполагая, что данные находятся в pandas.Dataframe, вы можете изменить данные и использовать pandas.DataFrame.to_dict . Например:

df['Key']=df['Name']+df['Id'] #combine the two columns you want to make keys
df=df.drop(['Name','Id'],axis=1).set_index('Key').T.to_dict('list')

После объединения двух столбцов я установил Key в качестве индекса, а затем транспонировал. Это избавит от имен столбцов из индекса. Затем я конвертирую его в словарь.

0
ответ дан Ricky Kim 15 January 2019 в 18:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: