< 2FeRed's Conundrum of Life :: [아바쿠스] 파이썬 스크립팅 #6. 시퀀스 연산



*. 코드 분석용 형식없는 개인공부.

**. 표기되지 않은 자료의 출처는 Abaqus Scripting User's Manual (v6.8)에서 따옴.


시퀀스 연산법

파이썬에서는 시퀀스를 연산할 수 있는 툴을 제공한다.

Slicing [슬라이싱]

시퀀스는 더 작은 시퀀스들로 나눌수 있으며 이러한 연산을 슬라이싱이라고 한다. [m:n] 크기의 시퀀스라면 m 에서 n--1까지의 결과를 내보낼 수 있다. m의 기본값은 0이며 n의 기본값은 시퀀스의 크기이다.

>>> myList = [0,1,2,3,4]
>>> myList[1:4]
[1, 2, 3]
[1:4]로 표현 했지만 슬라이싱에서 n-1까지 처리하므로 실제로는

[1], [2], [3] 까지의 원소만 추출된다.


>>> myString ='linear load'
>>> myString[7:]
'load'
 n의 기본값이 시퀀스의 크기이므로 [7:]이라고 표현한 것이나 [7:11]이라고 표현한 것이나 똑같다.

>>> myString[:6]
'linear'
m의 기본값이 0이므로 [:6]으로 표현한 것이나 [0:6]으로 표현한 것이나 똑같다.


시퀀스의 반복

>>> x=(1,2)
>>> x*2
(1, 2, 1, 2)
>>> s = 'Hoop Stress'
>>> s*2
>>> 'Hoop StressHoop Stress'

 * 연산자를 사용하면 배수만큼 반복한다.

시퀀스의 길이확인

>>> myString ='linear load'
>>> len(myString)
11
>>> myList = [0,1,2,3,4]
>>> len(myList)
5

시퀀스 연결시키기

>>> a = [0,1]
>>> b = [9,8]
>>> a + b
[0, 1, 9, 8]
>>> test = 'wing34'
>>> fileExtension = '.odb'
>>> test+fileExtension
'wing34.odb'

Range 함수

range() 함수는 정수형 리스트를 포함한 시퀀스를 만들어준다.

아래의 예시를 보면 알기가 쉽다.

>>> range(2,8)
[2, 3, 4, 5, 6, 7]

2부터 8사이의 정수리스트 (8은 제외)

>>> range(4)
[0, 1, 2, 3]

0부터 4개의 정수리스트

>>> range(1,8,2)
[1, 3, 5, 7]

1에서 8사이의 정수리스트를 2씩 증가시킴

시퀀스 타입의 변경

리스트나 튜플로 변경가능

>>> myString='noise'
>>> myList = list(myString) #Convert a string to a list.
>>> myList[0] = 'p'
>>> myList
['p', 'o', 'i', 's', 'e']
>>> myTuple = tuple(myString) #Convert a string to a tuple.
>>> print myTuple
('n', 'o', 'i', 's', 'e')


아름다운 인터넷 문화를 위해 댓글을 남겨주세요. -0-;
AND