# -*- coding: utf-8 -*-
data ="""\
5 v
1 d
6 t
8 r
3 a"""
lines = data.splitlines(False)
숫자 =[]
영자 =[]for k in lines:
숫자.append(k.split()[0])
영자.append(k.split()[1])
압축 =zip(숫자, 영자)
압축_정렬 =sorted(압축, key=lambda x: x[1])for zzz in 압축_정렬:
print(zzz)# EOF
원래 질문글이 python과는 관련이 없어서 이런 논의를 계속 진행하는 건 조심스럽긴 합니다만, 그래도 일단 코드가 올라왔으니...
data="""5 v
1 d
6 t
8 r
3 a"""
data_tuples =[tuple(line.split())for line in data.splitlines(False)]
data_tuples.sort(key=lambda t: t[1])for t in data_tuples:
print(t)
5 v
1 d
6 t
8 r
3 a
:%!sort -k2
3 a
1 d
8 r
6 t
5 v
일단 전체를 비주얼 라인으로 블록을 잡은 다음, sort 명령으로 파이프시킬 때 -k 옵션을 지정해 주면 됩니다. 기본적으로 sort 명령의 구분자는 공백이고, -k 2 옵션은 2번째 필드, 그러니까 뒤에 있는 알파벳을 필드로 사용하겠다는 거죠.
-k, --key=KEYDEF sort via a key; KEYDEF gives location and type
KEYDEF is F[.C][OPTS][,F[.C][OPTS]] for start and stop position, where F is a field number and C a character
position in the field; both are origin 1, and the stop position defaults to the line's end. If neither -t nor
-b is in effect, characters in a field are counted from the beginning of the preceding whitespace. OPTS is
one or more single-letter ordering options [bdfgiMhnRrV], which override global ordering options for that key.
If no key is given, use the entire line as the key. Use --debug to diagnose incorrect key usage.
파이썬으로 처리해봤어요~
산법출처: https://stackoverflow.com/questions/7142227/how-do-i-sort-a-zipped-list-in-python
[우분투 18.04 파여폭스 나비에서 적었습니다]
파이썬 좋아하시는 건 잘 알겠는데, 이 분의 질문
파이썬 좋아하시는 건 잘 알겠는데, 이 분의 질문 의도와는 많이 벗어난 것 같습니다.
왜 데이터를 애써 쪼개고 다시 합치죠?
왜 데이터를 애써 쪼개고 다시 합치죠?
원래 질문글이 python과는 관련이 없어서 이런 논의를 계속 진행하는 건 조심스럽긴 합니다만, 그래도 일단 코드가 올라왔으니...
zip 을 쓰지 않고도 한방에 정리해주시네요,,,
zip 을 쓰지 않고도 한방에 정리해주시네요,,,
간결한 코드에 감사드립니다^^^
파이썬3 드림
[우분투 18.04 파여폭스 나비에서 적었어요]
5 v
일단 전체를 비주얼 라인으로 블록을 잡은 다음, sort 명령으로 파이프시킬 때 -k 옵션을 지정해 주면 됩니다. 기본적으로 sort 명령의 구분자는 공백이고, -k 2 옵션은 2번째 필드, 그러니까 뒤에 있는 알파벳을 필드로 사용하겠다는 거죠.
덕분에 저도 배우고갑니다. 감사합니다^^^
덕분에 저도 배우고갑니다. 감사합니다^^^
[우분투 18.04 파여폭스 나비에서 적었어요~]
댓글 달기