splitはstringをlistにする。
joinはlistをstringにする。
sliceはデータ型を維持する。(listのitemを一つだけsliceしたらstringになる)
course_1_assessment_7
rainfall_mi = “1.65, 1.46, 2.05, 3.03, 3.35, 3.46, 2.83, 3.23, 3.5, 2.52, 2.8, 1.85”
items = rainfall_mi.split(“, “) #splitはstringをlistにする。
print(items)
num = 0
for item in range(len(items)):
if float(items[item]) > 3:
num += 1
num_rainy_months =num
print(num_rainy_months)
sentence = “students flock to the arb for a variety of outdoor activities such as jogging and picnicking”
# Write your code here.
items = sentence.split(” “)
print(items)
num = 0
for item in range(len(items)):
len_item = len(items[item])
print(len_item)
if items[item][0] == items[item][len_item-1]:
num += 1
print(items[item])
elif len_item == 1:
num += 1
print(items[item])
same_letter_count = num
print(same_letter_count)
Lists and Strings
stringは文字のsequenceです。
for _ in <string>でもOK.
stringも足し算できる!
Pythonはあらゆる種類のオブジェクト(数字、単語など)のリストや、特別な種類のシーケンス、文字列(個々の文字のシーケンスと考えることができます)を扱うための多くの機能を私たちに提供してくれています。
simple or primitive or atomic data types
これまで、int、float、strといった組み込み型を見てきました。intとfloatは、値が小さな部品で構成されていないため、単純または原始的、あるいは原子データ型と考えられています。分解することができないからです。
strings and lists
一方、文字列とリストは、より小さな部品から構成されているため、他のデータ型とは異なります。文字列の場合、それぞれが1文字を含む小さな文字列から構成されています。
collection data types
このような小さな断片で構成された型をコレクションデータ型と呼びます。何をするかによって、コレクションデータ型を単一の実体(全体)として扱いたい場合もあれば、その部分にアクセスしたい場合もあります。この曖昧さが便利なのです。
この章では、個々の要素や部分配列(スライスと呼ばれる)を取り出したり、その長さを計算するなど、シーケンスに対して実行可能な操作について検討する。また,文字列とリストの重要な違いの1つとして,文字列は不変であるのに対し,リストは変更(変異)することができることを学びます.In addition, we’ll examine some special functions that are defined only for strings, and we’ll find out one importance difference between strings and lists, that lists can be changed (or mutated) while strings are immutable.
stringは””で囲まれている文字列のこと。
スペースも文字数にカウントされる。
string及びtupleはimmutable、つまりコピーして変換はできても、参照するstringそのものは変えられない。
Tupleはlistと違って()parenthesisで括る。
List は[]bracketsで括る。
Tuple は中にあるitemが一個しかない場合、data type が intとかstringになる。
List もTupleもitemがゼロでもOK
a list with link zero.
indexはitemに振られる番号
listの中にあるlistは一つのitemとされる。
itemはintでもstringでもlistでもfloatでも良い。
リストの演算: len()メソッド
stringのlen()は文字列の文字数(spaceもカウントされる)
listのlen()はitemの数
Slice operator
Slice operatorはlistから新しいlistを切り抜いて作る。
Slice operatorはstringからstringを切り抜く。
a_list = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’]
print(a_list[1:3]) #index1からindex2
print(a_list[:5]) #前から5つのitemを取り出してlistにする。
print(a_list[2:]) #前から2つのitemを無視して残りのitemを取り出してlistにする。
print(a_list[:]) #全てのitemを取り出してlistにする。
何これすごい役だった。8.10. The Accumulator Pattern with Conditionals
words = [“adopt”, “bake”, “beam”, “confide”, “grill”, “plant”, “time”, “wave”, “wish”]
past_tense = []
for item in range(len(words)):
print(len(words[item]))
if words[item][len(words[item])-1:] == “e”: #words[item]の最後のidexの文字
past_tense += [words[item] + “d”]
print(past_tense)
else:
past_tense += [words[item] + “ed”]
print(past_tense)
似ているようで違う:
a_list = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’]
print(a_list[0:4])#index0からindex3までを拾う
print(a_list[:4]) #前から4つのitemをひろう
print(a_list[2:len(a_list)]) #index2からリストの最後まで拾う
print(a_list[2:]) #前から2つのitemを無視して残りを拾う
Tuple とlistで違う。listはitemが1つでもOK.
指定したindexを取り出すこととは違う。
l[1:2]と
l[1]は取り出されたデータタイプが違う。
count and index メソッド
Countはcase sensitive
print(b.count(“e”))#stringの中にあるeをカウントする。
print(z.count(“e”))# count()のargumentはitem。itemの中にeがあろうとcountしない。
print(music.index(“l”))#一番小さなindexの番号をreturnする。
print(music.index(“out”))#outのoのindexの番号をreturnする。
print(bio.index(“Metatarsal”))#”Material”というitemのindex番号をreturn
index
will return the left most index of the argument.
Split and Join メソッド
Splitはstringをlistにしてreturnする。
[splitされるstring].split([splitするstring])
Joingはlistをstringにしてreturnする。
“[glue]”.join([joinされるlist])
これ面白かった。
traversal, or iteration(反復処理)
Iterator Variable or loop variable
- name in this
for
statement is called the loop variable or, alternatively, the iterator variable.
- The overall syntax is
for <loop_var_name> in <sequence>:
- Line 2 is the loop body. The loop body is always indented. The indentation determines exactly what statements are “in the loop”.
listではなくstringが<sequence>になる場合、文字の一つ一つがlistのitemの代わりになる。
<loop_var_name>が不定でもOK。そののときは、<sequence>の数だけ処理がくりかえされるれる。
インデントが大事
The Accumulator Pattern
数列を作る?
an accumulator variable
an iterator variable
range(x, y)
print(type(range(5)))
<class 'range'>
range(5)はrange(0, 5)
7.6. The Accumulator Pattern
この問いの意図が掴めなかった。
こちらはピリオドが一個だからこれで行けた。
for loopのbody入れてあげないとエラー出る。
0から40の数字のリストを作る!
%が出てくるのを初めてみた。整数問題やn
course_1_assessment_6
addition_str = "2+5+10+20"
num_list = addition_str.split("+")
sum_val = 0
print(num_list)
for idn in range(len(num_list)):
sum_val = sum_val + int(num_list[idn])
#print(sum_val)
Image object
To access the pixels in a real image, we need to first create an Image
object
行列の作り方
すごい!これで色を変換している!!!!
コメント