2.6

2013-10-18 3 views
0

내가2.6

for header in cookie_headers: 
    pairs = [pair.partition("=") for pair in header.split(';')] 
    cookie_name = pairs[0][0] # the key of the first key/value pairs 
    cookie_value = pairs[0][2] # the value of the first key/value pairs 
    cookie_parameters = {key.strip().lower():value.strip() for key,sep,value in pairs[1:]} 
    cookies.append((cookie_name, (cookie_value, cookie_parameters))) 
return dict(cookies) 

내가 2.7을 설치 내가 그 cookie_parameters 같은 약간의 코드를 파이썬 2.6 작동하지 않는 한 매우 빠른 질문을 가지고 하이 만 필요로하는 libs와 파이썬이 구문을 변환하는 방법 파이썬 2.6에서 내가 그냥, 더 일반적으로 2.6

cookie_parameters = {key.strip().lower():value.strip() for key,sep,value in pairs[1:]} 

답변

3
cookie_parameters = dict((key.strip().lower(), value.strip()) 
         for key,sep,value in pairs[1:]) 

의 모든 DICT의 이해 사장님을이 구문을 작성하는 방법을 배울 필요가 너무 많은 혼란 dict 생성자 (키, 값) 쌍 어떠한 반복 가능 걸릴 수 있기 때문에 ...

dict((<keyexpr>, <valueexpr>) for <comprehension_target>) 

:이 예 :

{<keyexpr>: <valueexpr> for <comprehension_target>} 

... 동일하다.

DICT 이해가 빠를 것이다, 그러나 파이썬 2.7 전에 작동하지 않습니다 물론 제외

, ...

+0

내 약칭을 바라고 있어요 작성된 구문은 이해할 수 있습니다. 문제는 "첫 번째 이후의 모든 것"에 대한 좋은 이름이 없다는 것입니다. "첫 번째부터 시작하여 모든 것", ['comp_for'] (http://docs.python.org/3.3/reference/expressions.html#displays-for-lists-sets-and)에 대한 좋은 이름이 있습니다. - 사전), 그러나 'for'를 꺼내면 이것이 이것이 이해력이되기로되어 있다는 사실이 훨씬 덜 분명해진다. – abarnert

0

DICT 이해는 파이썬 2.7를 참조하기 때문에 도입 : What’s New in Python 2.7

을 구성하는 세 가지 방법이 있습니다 사전인가가 : 반복 가능 객체는

class dict(**kwarg) e.g. dict(one=2, two=3) 

class dict(mapping, **kwarg) e.g. dict({'one': 2, 'two': 3}) 
class dict(iterable, **kwarg) e.g. dict(zip(('one', 'two'), (2, 3))) Or dict([['two', 3], ['one', 2]]) 

지능형리스트와 generaters, 당신은 그들과 함께 DICT()를 결합 할 수