Найти - Пользователи
Полная версия: "красивое" форматирование списка строк
Начало » Python для новичков » "красивое" форматирование списка строк
1
pupkin2
всем привет.

имеется к примеру такой список:
отформатировать его можно банально в цикле. но возможно есть более изящное решение?

второй вопрос.
к примеру, есть такой список:
и такой словарь для формата: {“k1”:“str1”, “k2”:“str2”, “k3”:“str3”, “k4”:“str4”}
каким образом(кроме тупой итерации) можно отформатировать список изящно, используя для этого имена_ключей_и_их_значения_из_словаря?

спасибо.
d1ffuz0r
есть изящный map()
pupkin2
d1ffuz0r, спасибо. а можно плиз ссылку на доку по map()? а то я что-то блуд поймал.
еще раз спасибо.
pupkin2
d1ffuz0r, спасибо.
pupkin2
d1ffuz0r, еще такой вопрос. по поводу -
к примеру, есть такой список:
и такой словарь для формата: {“k1”:“str1”, “k2”:“str2”, “k3”:“str3”, “k4”:“str4”}
в map(), первым аргументом нужно передать функцию, которая, для моего случая, должна принимать два аргумента.
т.е. -
l = ["{k1}/v1", "{k2}/v2", "{k3}/v3", "{k4}/v4"]
m = {"k1":"str1", "k2":"str2", "k3":"str3", "k4":"str4"}

def pred(li, mi):
print "li = ",li,",mi = ",mi
return li, mi

print map(pred, l, m)
http://liveworkspace.org/code/99f9ecc3cfcdab33c5df67d40f35ff9c

вывод:
li = {k1}/v1 ,mi = k3
li = {k2}/v2 ,mi = k2
li = {k3}/v3 ,mi = k1
li = {k4}/v4 ,mi = k4
li - строка. а mi что за тип? судя по выводу, это значения словаря, что не совсем то, что ожидалось.
каким образом можно передать в функцию вместо значения словаря, пару key<->val ?

или я вообще не тем путем пошел?
o7412369815963
Короткое, но не оптимальное решение.
l = ["{k1}/v1", "{k2}/v2", "{k3}/v3", "{k4}/v4"]
m = {"k1":"str1", "k2":"str2", "k3":"str3", "k4":"str4"}

print map(lambda x:m[x.split('/')[0].strip('{}')]+'/'+x.split('/')[1], l)
['str1/v1', 'str2/v2', 'str3/v3', 'str4/v4']
pyuser
l = ["{k1}/v1", "{k2}/v2", "{k3}/v3", "{k4}/v4"]
m = {"k1":"str1", "k2":"str2", "k3":"str3", "k4":"str4"}
print([x.format(**m) for x in l])
pupkin2
o7412369815963, pyuser, огромное спасибо вам. хотя был интерес самому разобраться)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB