目次
前言
一、最大化最小化方法
二、统计次数方法
三、去掉左右侧字符方法
四、字符串分隔方法
五、字符串替换方法
六、字符串拼接方法
七、判断是否为数字的方法
八、判断是否为空格的方法
九、判断前缀和后缀的方法
补充:更多Python字符串常用方法
ホームページ バックエンド開発 Python チュートリアル Python 文字列の一般的なメソッドとその応用シナリオの分析

Python 文字列の一般的なメソッドとその応用シナリオの分析

Jun 01, 2023 pm 10:35 PM
python

前言

字符串作为一种重要的Python基本数据类型,在数据处理中发挥着不可或缺的作用,如果对它的方法能够灵活使用,能够达到事半功倍的效果。下面我们选取一些常用的方法,简述其应用场景。

一、最大化最小化方法

字符串的最大化方法upper()和最小化方法lower()可以将字符串全部转换为大写和小写。在数据处理分析过程中,如果涉及到字符串的比较和统计,尤其涉及到英文的,一般需要将字符串全部转化小写再进行比较统计,否则可能会不准。

比如根据用户的输入,决定接下来的程序是否执行,如果用户输入n则不执行,为了让程序设计的更加友好,需要考虑用户可能输入N的情况,该问题可以通过lower()或者upper()来解决。

>>> choice = input('是否继续执行程序,输入n或N则结束:')
是否继续执行程序,输入n或N则结束:N
>>> if choice == 'n'or choice == 'N':  # 常规处理方式
	      print('程序结束')
>>> if choice.lower() == 'n':  #  推荐用该方法处理
	      print('程序结束')
ログイン後にコピー

比如现在通过分词工具,已经把一段英文分词单词的列表,现在要统计“when”出现的次数,一般需要再统计之前将字符串全部最小化下。

>>> words = ['When', 'you', 'fall', 'stand', 'up.', 'And', 'when', 'you', 'break', 'stand', 'tough', 'And', 'when', 'they', 'say', 'you', 'can't,', 'you', 'say', 'I', 'can', 'I', 'can']
>>> count = 0
>>> sta_word = 'when'
>>> for word in words:
	    if word.lower() == sta_word:
		    count += 1
>>> print('{}出现了{}次'.format('when', count))
when出现了3次
ログイン後にコピー

二、统计次数方法

统计次数的count()方法可以快速统计字符串中某个子串出现的次数,但这个方法在列表数据类型中应用较多,在字符串中应用很少,使用不当容易造成不易察觉的错误。

比如统计“帽子和服装如何搭配才好看”这句话中“和服”出现的次数,虽然出现了“和服”,但不是想要统计的结果,对于英文中很多单词有多种时态,更是如此。通常,在统计文本中的词频之前,需要对文本进行分词处理,对于英文文本可能还需要进行词形还原,以便更准确地统计词频。

>>> "帽子和服装如何搭配才好看".count("和服")
1
>>> import jieba
>>> words = jieba.lcut("帽子和服装如何搭配才好看")
>>> words
['帽子','和','服装','如何','搭配','才','好看']
>>> words.count("和服") # 分词后再统计
0
ログイン後にコピー

三、去掉左右侧字符方法

在做文本处理任务时,对于网络上爬取或者其他渠道获取的数据信息,经常会存在“噪声”,即会有一些没有实际意义的字符,干扰文本的格式和信息的提取,此时strip()lstrip()rstrip()方法就可以帮助删除掉字符串头部和尾部的指定字符。当字符没有被指定时,默认去除空格或换行符。lstrip()代表删除字符串左侧(即头部)出现的指定字符,rstrip()代表删除字符串右侧(即尾部)出现的指定字符。下面通过几个例子来说明。

>>> temp_str = "  tomorrow is another day "
>>> temp_str.strip()
'tomorrow is another day'
>>> temp_str = "#  tomorrow is another day @"
>>> temp_str.strip('#')
'  tomorrow is another day @'
>>> temp_str.strip('# @')
'tomorrow is another day'
>>> temp_str = "#@  tomorrow is another day @"
>>> temp_str.lstrip('@# ')
'tomorrow is another day @'
ログイン後にコピー

四、字符串分隔方法

当字符串具有特定的格式,或者需要处理的数据具有结构化特点,比如excel表格的数据、或者json格式的文件等,当提取其中的某一个或几个字段时,需要先对字符串进行分隔。split()方法以指定的分隔符为基准,将分隔后得到的字符串以数组类型返回,方便进行之后的操作。当没有指定分隔符时,默认以空格分隔。

>>> temp_str = "Whatever is worth doing is worth doing well"
>>> temp_str.split()
['Whatever', 'is', 'worth', 'doing', 'is', 'worth', 'doing', 'well']
>>> temp_str = "tomorrow#is#another#day"
>>> temp_str.split('#')
['tomorrow', 'is', 'another', 'day']
>>> temp_str = ‘"name":"Mike","age":18,"sex":"male","hair":"black"'
>>> temp_str.split(',')
['"name":"Mike"', '"age":18', '"sex":"male"', '"hair":"black"']
ログイン後にコピー

五、字符串替换方法

字符串替换也是很常用的方法之一。例如发现有输入错误的时候,正确的要替换掉错误的,或者需要将一些没有意义的字符统一去除或者换成空格的时候,都可以考虑使用replace()方法。第三个参数为可选参数,表示替换的最大次数。

>>> temp_str = "this is really interesting, and that is boring."
>>> temp_str.replace('is','was')
'thwas was really interesting, and that was boring.'
>>> temp_str.replace('is','was')
'this was really interesting, and that was boring.'
>>> temp_str = 'I really really really like you.'
>>> temp_str.replace("really","",2)
'I   really like you.'
ログイン後にコピー

上述示例表明,在编程中需要考虑替换字符串中所有包含目标字符串的单词的情况,而不仅仅是替换目标字符串本身。在处理英文字符串时,可以考虑在替换过程中添加空格以避免错误替换,就像第四行中的做法一样。

六、字符串拼接方法

字符串的拼接方法与其分隔方法可以看作是互逆操作,join()方法将序列中的元素以指定的字符连接,生成一个新的字符串。这个序列可以是字符串、元组、列表、字典等。

>>> seq = 'hello world'
>>> ":".join(seq)
'h:e:l:l:o: :w:o:r:l:d'
>>> seq = ('Whatever', 'is', 'worth', 'doing', 'is', 'worth', 'doing', 'well')
>>> "*".join(seq)
'Whatever*is*worth*doing*is*worth*doing*well'
>>> seq = ['Whatever', 'is', 'worth', 'doing', 'is', 'worth', 'doing', 'well']
>>> " ".join(seq)
'Whatever is worth doing is worth doing well'
>>> seq = ['"name":"Mike"', '"age":18', '"sex":"male"', '"hair":"black"']
>>> "#".join(seq)
'"name":"Mike"#"age":18#"sex":"male"#"hair":"black"'
ログイン後にコピー

七、判断是否为数字的方法

isdigit()方法用于判断一个字符串是否全部都由数字组成,返回值为布尔值。如果字符串中存在小数点或者符号,也不能认为全都是数字,如下例所示:

>>> num = "13579"
>>> num.isdigit()
True
>>> num = '1.0'
>>> num.isdigit()
False
>>> num = '-1'
>>> num.isdigit()
False
ログイン後にコピー

八、判断是否为空格的方法

isspace()方法用于判断一个字符串是否全部都由空格组成,返回值为布尔值。要注意的是,空字符串返回False。如下例所示:

>>> t = ''
>>> t.isspace()
False
>>> t = '  '
>>> t.isspace()
True
ログイン後にコピー

九、判断前缀和后缀的方法

startswith()endswith()分别用于判断字符串的前缀和后缀,即它的开始部分和结尾部分,返回值为布尔值,后面有两个可选参数,相当于对字符串做一个切片后再判断前缀/后缀。如下例所示:

>>> temp_str = "Whatever is worth doing is worth doing well"
>>> temp_str.startswith("W")
True
>>> temp_str.startswith("What")
True
>>> temp_str.startswith('Whatever',2)
False
>>> temp_str.endswith("well",2)
True
>>> temp_str.endswith("we",2,-2)
True
ログイン後にコピー

补充:更多Python字符串常用方法

a = "hello world"
# 字符串不能通过索引进行修改  name[0] = 'q'
 
# 切片,查找字符串当中的一段值,[起始值:终止值:步长]不写步长默认是1
print(a[0:5:])
print(a[::-1])  # 步长负数倒过来走,不写起始值和终止值就走完全部
print(a[::1])
print(len(a))  # len方法获取字符串的长度
 
# in 和 not in :判断一个字符串是否在一个大的字符串中
# 返回值为布尔类型
print('hello' in 'hello world')
print('nihao' not in 'hello world')
 
# 字符串的增
print('nihao', 'Python')
print('nihao' + 'Python')
 
# format    前面的大括号写上数字代表着取后面括号里的索引位置
print('==============format================')
print('my name is {}'.format(100))
print('my name is {1},my age is {0}'.format('dayv', 18))
print('my name is {0},my age is {1}'.format('dayv', 18))
 
# join  把列表里的元素组成字符串
str1 = '真正的勇士'
str2 = '敢于直面惨淡的人生'
str3 = '敢于正视淋漓的鲜血'
print(''.join([str1, str2, str3]))
# 前面的逗号表示用什么来隔开,列表中只能是字符串才能使用join方法
print(','.join([str1, str2, str3]))
 
# 删   del
name1 = 'nihao'
del name1  # 这就把这个变量删除了,在输出这个变量就会出错
 
# 改
# 字符串变大小写 upper , lower ,
name1 = 'abc'
print('大写:' + name1.upper())
print(name1.lower())
 
# capitalize  将第一个字母转换成大写
print(name1.capitalize())
 
# 将每个单词的首字母大写  title
name2 = 'hello world'
print('每个单词首字母大写:' + name2.title())
print('原name2的值' + name2)
 
# 将字符串切分成列表  默认空格为字符切分  split
name1 = 'a b    cd e'
print(name1.split())
# 括号里写什么就用什么切分                !!!!!!!!!!!!!!!!!!!!
name1 = 'a1b1cd1e'
print("自己配置用什么东西切分", name1.split('1'))  # 返回的是列表
# rsplit('指定用什么切片', 切几次),反过来切
print('切片倒过来切使用rsplit', name1.rsplit('1', 1))  # 倒过来切一个元素
# 替换replace(被替换的字符,替换的字符,个数)     !!!!!!!!!!!!!!
print(name1.replace('1', '0'))
print(name1.replace('1', '0', 1))  # 个数是从左往右的顺序替换
aaaaa = ' sdf   kkf  k k   '
print('使用替换去除字符串中的全部空格', aaaaa.replace(" ", ''))
 
# strip  除去字符串两边的空格,中间的不会管
name1 = '        ni h ao     '
print(name1.strip())
 
# 查
# find  index
# 查找字符串在大字符串的那个索引位置(起始索引)
name1 = 'PythonPythonPython'
print("使用find查找的索引位置", name1.find('on'))
# 找不到会返回-1
print("使用index查找的索引位置:", name1.index('on'))
# index方法找不到会报错
 
# count  统计一个字符串在大字符串里面出现的次数
print(name1.count('qi'))
 
# 判断一个字符串里的数据是不是都是数字  isdigit   返回布尔值
num = '156465'
print(num.isdigit())
# 判断一个字符串里的数据是不是都是字母   isalpha
num = 'ksdjflks'
print(num.isalpha())
 
# 比较后面一个元素是否是前面一个元素的开头,startswith
# 比较后面一个元素是否是前面一个元素的结尾  endswith
mm = 'Python nihao'
print(mm.startswith('Pyth'))
print(mm.endswith('Pytho'))
 
# 判断字符串是否全是大写isupper   是否全是小写islower
 
# 转义字符 \n换行   \t
print('hello \nworld')
print('z\tiyu')
print('Pyth \t on')
print('Python123')
# 反转义
print(r'zhai \t dada')  # 加r
print('zhai \\t dada')  # 或者写两个斜杠
 
# 控制字符串的输入字数
print('123456'[:5])  # 只会输入前五个数
ログイン後にコピー

以上がPython 文字列の一般的なメソッドとその応用シナリオの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

See all articles