方法1: sum()+ split()
+リスト内包表記+enumerate()
上記の組み合わせを使用する関数を使用して、これらのタスクを実行できます。この場合、分割はハイフンとコンマによって実行され、それに応じて、範囲、数値が抽出され、リストにコンパイルされます。
#Python3コードでどのように機能するかを示します
#文字列範囲をリストに変換します
#sum( )+リスト内包表記+列挙()+分割()
#初期化文字列
test_str
=
"1、4-6、8-10、11"
< / p>
#元の行を印刷
print
(
"元の文字列は次のとおりです: "
+
test_str)
#文字列範囲をリストに変換する
#sum()+ list comprehension + enumerate()+ split()を使用
res
=
sum
(((
list
(
range
(
*
[
int
(b)
+
c
for
c、b
in
列挙
(a.split(
`-`
))]))
if
`-` cod e>
in
a
else
[
int
(a)])
for
a
in
test_str.split(
`、`
))、[])
#結果を出力
print
(
"文字列から変換した後のリスト:"
+
str
(res))
出力: b>
元の文字列は1、4-6、8-10、 11文字列から変換した後のリスト:[1、4、5、6、8、9、10、11]
方法#2: map()+を使用するスプリット ()
+ラムダ
このタスクは、上記の関数を使用して実行することもできます。上記の方法と同様です。唯一の違いは、複雑な読みやすさを減らすためにmap()関数とラムダ式を使用することです。 Python2でのみ機能します。
#動作を示すPython2コード
#文字列範囲をリストに変換
#map()+ lambda + split()を使用
#初期化文字列
test_str
=
"1、4-6、8-10、11"
#元の行を印刷する
print
(
"元の文字列は次のとおりです:"
+
test_str)
#文字列範囲をリストに変換
#マップを使用( )+ラムダ+スプリット()
temp
=
[(
lambda
sub:
range
(sub [
0
]、sub [
-
1
]
+
1
))(
map
(
int
、 ele.split(
`-`
)))
for
ele
in
test_str。 split(
`、`
)]
res
=
[b
for
a
in
temp
for
b
in
a]
#結果を出力
print
(
"文字列から変換した後のリスト:"
+
str
(res))
終了: b>
元の文字列は次のとおりです:1、4-6、8-10、11文字列から変換した後のリスト:[1、4、5、6、8、9、10、11]
Python |文字列範囲をリストに変換する exp: Questions
Python |文字列範囲をリストに変換する Python functions: Questions
Shop
Latest questions