【ゼロから学ぶPython】24. Pythonの文字列操作とトラバーサル方法

文字列を実行する

Python の組み込み eval 関数を使用すると、文字列内の Python コードを実行できます。このようにして、文字列を他のタイプのデータに変換できます。

x = '1+1'
print(eval(x))  # 2
print(type(eval(x)))  # <class 'int'>

y = '{"name":"zhangsan","age":18}'
print(eval(y))
print(type(eval(y)))  # <class 'dict'>

print(eval('1 > 2'))  # False

eval('input("请输入您的姓名:")')

文字列に変換する

JSON (JavaScript Object Notation、JS Object Notation) は、ECMAScript のサブセットに基づく軽量のデータ交換形式で、プログラミング言語から完全に独立したテキスト形式を使用してデータを保存および表現します。JSON は本質的には文字列です

JSON は強力な機能と幅広い利用シーンを備えていますが、現時点では、Python の組み込み JSON モジュールを使用して、辞書、リスト、またはタプルと文字列間の相互変換を実現する方法のみを紹介します。

json の dumps メソッドを使用すると、辞書、リスト、またはタプルを文字列に変換できます。

import json

person = {
    
    'name': 'zhangsan', 'age': 18}
x = json.dumps(person)
print(x)  # {"name": "zhangsan", "age": 18}
print(type(x))  # <class 'str'>

nums = [1, 9, 0, 4, 7]
y = json.dumps(nums)
print(y)  # [1, 9, 0, 4, 7]
print(type(y)) # <class 'str'>

words = ('hello','good','yes')
z = json.dumps(words)
print(z) # ["hello", "good", "yes"]
print(type(z)) # <class 'str'>

json の loads メソッドを使用して、適切にフォーマットされた文字列を辞書またはリストに変換します。

x = '{"name": "zhangsan", "age": 18}'
person = json.loads(x)
print(person)  # {'name': 'zhangsan', 'age': 18}
print(type(person)) # <class 'dict'>

y = '[1, 9, 0, 4, 7]'
nums = json.loads(y)
print(nums) # [1, 9, 0, 4, 7]
print(type(nums)) # <class 'list'>

文字列、リスト、タプル、辞書、セットの共通点

文字列、リスト、タプル、辞書、コレクションには多くの類似点があり、これらはすべて複数の要素で構成される反復可能なオブジェクトであり、共通して使用できるメソッドがいくつかあります。

算術演算子

Python では、いくつかの一般的な算術演算子を反復可能なオブジェクトで使用できますが、それらの実行結果は若干異なります。

オペレーター Python 式 結果 説明する サポートされているデータ型
+ [1, 2] + [3, 4] [1、2、3、4] マージ 文字列、リスト、タプル}
- {1,2,3,4} - {2,3} {1,4} セット差 集める
* [「こんにちは!」] *4 [「やあ!」、「やあ!」、「やあ!」、「やあ!」] コピー 文字列、リスト、タプル
3 インチ (1、2、3) 真実 要素が存在します 文字列、リスト、タプル、辞書
ありませんで 4 は (1、2、3) にありません 真実 要素が存在しません 文字列、リスト、タプル、辞書

+

加算演算子は、文字列、リスト、タプルで複数の反復可能なオブジェクトを連結するために使用できますが、ディクショナリやセットでは使用できません。

>>> "hello " + "world"
'hello world'
>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
>>> ('a', 'b') + ('c', 'd')
('a', 'b', 'c', 'd')

-

減算は、2 つのセット間の差を求めるためにセット内でのみ使用できます。

>>> {
    
    1, 6, 9, 10, 12, 3} - {
    
    4, 8, 2, 1, 3}
{
    
    9, 10, 12, 6}

*

加算演算子は、文字列、リスト、タプルで反復可能を複数回繰り返すために使用できますが、ディクショナリやセットでは使用できません。

>>> 'ab' * 4
'ababab'
>>> [1, 2] * 4
[1, 2, 1, 2, 1, 2, 1, 2]
>>> ('a', 'b') * 4
('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')

in および not in メンバー演算子は、すべての反復可能なオブジェクトで使用できます。ただし、辞書を判定する場合とそうでない場合は、値ではなく、指定されたキーが存在するかどうかをチェックすることに注意してください。

>>> 'llo' in 'hello world'
True
>>> 3 in [1, 2]
False
>>> 4 in (1, 2, 3, 4)
True
>>> "name" in {
    
    "name":"chris", "age":18}
True

トラバース

for ... in ... を通じて、文字列、リスト、タプル、辞書、コレクションなどの反復可能なオブジェクトを走査できます。

文字列トラバーサル

a_str = "hello world"
for char in a_str:
    print(char,end=' ')

リストトラバーサル

a_list = [1, 2, 3, 4, 5]
for num in a_list:
    print(num,end=' ')

タプルトラバーサル

a_turple = (1, 2, 3, 4, 5)
for num in a_turple:
    print(num,end=" ")

添字付きトラバーサル

反復可能なオブジェクトは、列挙組み込みクラスを使用して列挙オブジェクトにラップできます。enumerate をトラバースすることで、添字と反復可能なオブジェクトの要素を同時に取得できます。

nums = [12, 9, 8, 5, 4, 7, 3, 6]

# 将列表nums包装成enumerate对象
for i, num in enumerate(nums): # i表示元素下标,num表示列表里的元素
    print('第%d个元素是%d' % (i, num))

先進的な事例

【Python】Pythonで単語当てゲームを実現 - 知力と運に挑戦!

[Python] Python tkinter ライブラリは重量単位変換用の GUI プログラムを実装します

[Python] Selenium を使用して (2023 Blog Star) エントリを取得します

【Python】SeleniumとChrome WebDriverを使って「Tencent Cloud Studio実践合宿」の記事情報を取得する

Tencent Cloud Cloud Studio を使用してバイドゥ AI のスケジューリングを実現し、テキスト認識を実現します

【Pythonで楽しむシリーズ【Xiaobi必見】Pythonマルチスレッドクローラー:絵文字パッケージWebサイトの画像をダウンロード

【Pythonで遊ぶシリーズ】 【小白さん必見】Pythonを使って双世丘の履歴データをクロールして視覚的に分析する

【Pythonで遊ぶシリーズ】 【Xiaobiさん必見】Pythonクローラー技術を使ってプロキシIPを取得してファイルに保存する

【シャオバイ必見】PILライブラリを使ってランク別・列別の複数画像の合成を実現するPython画像合成例

【Xiaobai必見】Pythonクローラーの実戦は女神の写真を一括ダウンロードしてローカルに保存

【Xiaobi必見】Pythonワードクラウドジェネレーターの詳細な分析とコード実装

【Xiaobai必見】NBA選手データの例をPythonでクロール

【Xiaobiさん必見】Pythonでヒマラヤ音声をクロールして保存するサンプルコード

【シャオバイ必見】Pythonを使ってリーグ・オブ・レジェンドのスキン画像を一括ダウンロードする技術的実現

【Xiaobai必見】Pythonクローラーのデータ処理と可視化

【シャオバイ必見】栄光王のヒーロースキン画像を簡単に入手できるPythonクローラープログラム

【Xiaobiさん必見】Pythonを使ってパーソナライズされたリストのWord文書を生成する

【小白必見】Pythonクローラー戦闘:陰陽師のWebサイトから写真を取得して自動保存

Xiaobai必見の図書館管理システムシリーズ - ログインおよび登録機能のサンプルコード

小白の実戦100例:小白入門に最適な完全かつシンプルな双世丘宝くじ当選判定プログラム

geopandas と Shapely (.shp) を使用した地理空間データの処理と視覚化

セレンを使用して Maoyan の映画リスト データをクロールする

画像強調アルゴリズム Retinex の原理と実装の詳細な説明

クローラー入門ガイド (8): 視覚的な分析のための気象データ クローラー プログラムを作成する

クローラー入門(7):SeleniumとBeautifulSoupを使ってDouban映画トップ250をクロールする作例解説【爬虫類Xiaobai必見】

クローラー入門ガイド (6): クローラー対策と高度なスキル: IP プロキシ、ユーザー エージェント偽装、Cookie バイパス ログイン検証および検証コード識別ツール

クローラ入門(5):分散クローラと同時実行制御 【クローリング効率向上と要求合理性制御の実装方法】

クローラー入門 (4): Selenium と API を使用して動的 Web ページをクロールする最良の方法

クローラー入門ガイド (3): Python ネットワーク リクエストと一般的なクローラー対策戦略

クローラー入門 (2): データの抽出と処理に正規表現を使用する方法

爬虫類入門(1):爬虫類の基礎とスキルを学ぶ

画像認識における深層学習モデルの応用: CIFAR-10 データセットの実践と精度分析

Python オブジェクト指向プログラミングの基本とサンプル コード

MySQL データベース操作ガイド: Python を使用して操作を追加、削除、変更、クエリする方法を学習します。

Python ファイル操作ガイド: エンコード、読み取り、書き込み、例外処理

PythonとSeleniumを使ってクローリングを自動化#【ドラゴンボートフェスティバル特別公募】究極のテクノロジーを探求、未来はあなた次第「宗」 #寄稿記事

Python マルチスレッドおよびマルチプロセスのチュートリアル: 包括的な分析、コードケース、最適化スキル

Selenium 自動化ツールセット - 完全なガイドとチュートリアル

Python Web クローラーの基礎から実戦までのチュートリアル

Python 入門チュートリアル: for ループ、while ループ、文字列操作、ファイルの読み書き、例外処理の基礎知識をマスターします。

Pandas データ処理と分析チュートリアル: 基本から実際の戦闘まで

Python でよく使用されるデータ型と関連する操作の詳細な説明

【2023年最新】分類モデルの指標を改善する6つの主要なスキームを詳しく解説

Python プログラミングの基礎と高度なスキル、Web 開発、データ分析、機械学習と人工知能の入門

4 つの回帰手法による予測結果をグラフ化: ベクトル回帰、ランダム フォレスト回帰、線形回帰、K 最近傍回帰

おすすめ

転載: blog.csdn.net/qq_33681891/article/details/132290277