Maison développement back-end Tutoriel Python 跟老齐学Python之list和str比较

跟老齐学Python之list和str比较

Jun 16, 2016 am 08:41 AM
list str 比较

相同点

都属于序列类型的数据

所谓序列类型的数据,就是说它的每一个元素都可以通过指定一个编号,行话叫做“偏移量”的方式得到,而要想一次得到多个元素,可以使用切片。偏移量从0开始,总元素数减1结束。

例如:

>>> welcome_str = "Welcome you"
>>> welcome_str[0]
'W'
>>> welcome_str[1]
'e'
>>> welcome_str[len(welcome_str)-1]
'u'
>>> welcome_str[:4]
'Welc'
>>> a = "python"
>>> a*3
'pythonpythonpython'

>>> git_list = ["qiwsir","github","io"]
>>> git_list[0]
'qiwsir'
>>> git_list[len(git_list)-1]
'io'
>>> git_list[0:2]
['qiwsir', 'github']
>>> b = ['qiwsir']
>>> b*7
['qiwsir', 'qiwsir', 'qiwsir', 'qiwsir', 'qiwsir', 'qiwsir', 'qiwsir']

Copier après la connexion

对于此类数据,下面一些操作是类似的:

>>> first = "hello,world"
>>> welcome_str
'Welcome you'
>>> first+","+welcome_str  #用+号连接str
'hello,world,Welcome you'
>>> welcome_str       #原来的str没有受到影响,即上面的+号连接后从新生成了一个字符串
'Welcome you'
>>> first
'hello,world'

>>> language = ['python']
>>> git_list
['qiwsir', 'github', 'io']
>>> language + git_list   #用+号连接list,得到一个新的list
['python', 'qiwsir', 'github', 'io']
>>> git_list
['qiwsir', 'github', 'io']
>>> language
['python']

>>> len(welcome_str)  #得到字符数
11
>>> len(git_list)    #得到元素数
3

Copier après la connexion

区别

list和str的最大区别是:list是原处可以改变的,str则原处不可变。这个怎么理解呢?

首先看对list的这些操作,其特点是在原处将list进行了修改:

>>> git_list
['qiwsir', 'github', 'io']

>>> git_list.append("python")
>>> git_list
['qiwsir', 'github', 'io', 'python']

>>> git_list[1]        
'github'
>>> git_list[1] = 'github.com'
>>> git_list
['qiwsir', 'github.com', 'io', 'python']

>>> git_list.insert(1,"algorithm")
>>> git_list
['qiwsir', 'algorithm', 'github.com', 'io', 'python']

>>> git_list.pop()
'python'

>>> del git_list[1]
>>> git_list
['qiwsir', 'github.com', 'io']

Copier après la connexion

以上这些操作,如果用在str上,都会报错,比如:

>>> welcome_str
'Welcome you'

>>> welcome_str[1] = 'E'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

>>> del welcome_str[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object doesn't support item deletion

>>> welcome_str.append("E")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'append'

Copier après la connexion

如果要修改一个str,不得不这样。

>>> welcome_str
'Welcome you'
>>> welcome_str[0] + "E" + welcome_str[2:] #从新生成一个str
'WElcome you'
>>> welcome_str             #对原来的没有任何影响
'Welcome you'
Copier après la connexion

其实,在这种做法中,相当于从新生成了一个str。

多维list

这个也应该算是两者的区别了,虽然有点牵强。在str中,里面的每个元素只能是字符,在list中,元素可以是任何类型的数据。前面见的多是数字或者字符,其实还可以这样:

>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix[0][1]
2
>>> mult = [[1,2,3],['a','b','c'],'d','e']
>>> mult
[[1, 2, 3], ['a', 'b', 'c'], 'd', 'e']
>>> mult[1][1]
'b'
>>> mult[2]
'd'
Copier après la connexion

以上显示了多维list以及访问方式。在多维的情况下,里面的list也跟一个前面元素一样对待。

list和str转化

str.split()

这个内置函数实现的是将str转化为list。其中str=""是分隔符。

在看例子之前,请看官在交互模式下做如下操作:

>>>help(str.split)
得到了对这个内置函数的完整说明。特别强调:这是一种非常好的学习方法

split(...)
S.split([sep [,maxsplit]]) -> list of strings
Return a list of the words in the string S, using sep as the delimiter string. If maxsplit is given, at most maxsplit splits are done. If sep is not specified or is None, any whitespace string is a separator and empty strings are removed from the result.
Copier après la connexion

不管是否看懂上面这段话,都可以看例子。还是希望看官能够理解上面的内容。

>>> line = "Hello.I am qiwsir.Welcome you." 

>>> line.split(".")   #以英文的句点为分隔符,得到list
['Hello', 'I am qiwsir', 'Welcome you', '']

>>> line.split(".",1)  #这个1,就是表达了上文中的:If maxsplit is given, at most maxsplit splits are done.
['Hello', 'I am qiwsir.Welcome you.']    

>>> name = "Albert Ainstain"  #也有可能用空格来做为分隔符
>>> name.split(" ")
['Albert', 'Ainstain']
"[sep]".join(list)

Copier après la connexion

join可以说是split的逆运算,举例:

>>> name
['Albert', 'Ainstain']
>>> "".join(name)    #将list中的元素连接起来,但是没有连接符,表示一个一个紧邻着
'AlbertAinstain'
>>> ".".join(name)   #以英文的句点做为连接分隔符
'Albert.Ainstain'
>>> " ".join(name)   #以空格做为连接的分隔符
'Albert Ainstain'
Copier après la connexion

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment activer la fonction nfc sur Xiaomi Mi 14 Pro ? Comment activer la fonction nfc sur Xiaomi Mi 14 Pro ? Mar 19, 2024 pm 02:28 PM

De nos jours, les performances et les fonctions des téléphones mobiles deviennent de plus en plus puissantes. Presque tous les téléphones mobiles sont équipés de fonctions NFC pratiques pour faciliter le paiement mobile et l'authentification de l'identité des utilisateurs. Cependant, certains utilisateurs de Xiaomi 14Pro ne savent peut-être pas comment activer la fonction NFC. Ensuite, permettez-moi de vous le présenter en détail. Comment activer la fonction nfc sur Xiaomi 14Pro ? Étape 1 : Ouvrez le menu des paramètres de votre téléphone. Étape 2 : Recherchez et cliquez sur l'option « Connecter et partager » ou « Sans fil et réseaux ». Étape 3 : Dans le menu Connexion et partage ou Sans fil et réseaux, recherchez et cliquez sur « NFC et paiements ». Étape 4 : Recherchez et cliquez sur « NFC Switch ». Généralement, la valeur par défaut est désactivée. Étape 5 : Sur la page du commutateur NFC, cliquez sur le bouton du commutateur pour l'activer.

Comment utiliser TikTok sur Huawei Pocket2 à distance ? Comment utiliser TikTok sur Huawei Pocket2 à distance ? Mar 18, 2024 pm 03:00 PM

Faire glisser l'écran dans les airs est une fonctionnalité de Huawei très appréciée dans la série Huawei mate60. Cette fonctionnalité utilise le capteur laser du téléphone et la caméra de profondeur 3D de la caméra frontale pour compléter une série de fonctions qui ne nécessitent pas de fonction. fonction de toucher l'écran, comme faire glisser TikTok depuis les airs, mais comment utiliser le Huawei Pocket 2 pour faire glisser TikTok depuis les airs ? Comment faire des captures d'écran depuis les airs avec Huawei Pocket2 ? 1. Ouvrez les paramètres de Huawei Pocket2. 2. Sélectionnez ensuite [Accessibilité]. 3. Cliquez pour ouvrir [Perception intelligente]. 4. Activez simplement les commutateurs [Air Swipe Screen], [Air Screenshot] et [Air Press]. 5. Lorsque vous l'utilisez, vous devez le tenir à 20 ~ 40 cm de l'écran, ouvrir votre paume et attendre que l'icône de la paume apparaisse sur l'écran.

Comment définir l'espacement des lignes dans WPS Word pour rendre le document plus soigné Comment définir l'espacement des lignes dans WPS Word pour rendre le document plus soigné Mar 20, 2024 pm 04:30 PM

WPS est notre logiciel bureautique couramment utilisé lors de l'édition d'articles longs, les polices sont souvent trop petites pour être clairement visibles, c'est pourquoi les polices et l'ensemble du document sont ajustés. Par exemple : ajuster l'espacement des lignes du document rendra l'ensemble du document très clair. Je suggère à tous les amis d'apprendre cette étape de l'opération. Je la partagerai avec vous aujourd'hui. Les étapes de l'opération spécifiques sont les suivantes, venez jeter un oeil ! Ouvrez le fichier texte WPS que vous souhaitez ajuster, recherchez la barre d'outils de configuration des paragraphes dans le menu [Démarrer] et vous verrez la petite icône de configuration de l'espacement des lignes (représentée par un cercle rouge dans l'image). 2. Cliquez sur le petit triangle inversé dans le coin inférieur droit du paramètre d'espacement des lignes et la valeur d'espacement des lignes correspondante apparaîtra. Vous pouvez choisir 1 à 3 fois l'espacement des lignes (comme indiqué par la flèche sur la figure). 3. Ou cliquez avec le bouton droit sur le paragraphe et il apparaîtra.

Les dessins CAO de l'iPhone 16 Pro exposés, ajoutant un deuxième nouveau bouton Les dessins CAO de l'iPhone 16 Pro exposés, ajoutant un deuxième nouveau bouton Mar 09, 2024 pm 09:07 PM

Les fichiers CAO de l'iPhone 16 Pro ont été exposés et la conception est conforme aux rumeurs précédentes. L'automne dernier, l'iPhone 15 Pro a ajouté un bouton d'action, et cet automne, Apple semble prévoir d'apporter des ajustements mineurs à la taille du matériel. Ajout d'un bouton Capture Selon les rumeurs, l'iPhone 16 Pro pourrait ajouter un deuxième nouveau bouton, ce qui sera la deuxième année consécutive à ajouter un nouveau bouton après l'année dernière. La rumeur veut que le nouveau bouton Capture soit placé sur le côté inférieur droit de l'iPhone 16 Pro. Cette conception devrait rendre le contrôle de l'appareil photo plus pratique et permettre également d'utiliser le bouton Action pour d'autres fonctions. Ce bouton ne sera plus un simple déclencheur ordinaire. Concernant la caméra, à partir de l'iP actuelle

Comment définir une sonnerie personnalisée pour Redmi K70E ? Comment définir une sonnerie personnalisée pour Redmi K70E ? Feb 24, 2024 am 10:00 AM

Le Redmi K70E est sans aucun doute excellent. En tant que téléphone mobile avec un prix d'un peu plus de 2 000 yuans, le Redmi K70E peut être considéré comme l'un des téléphones mobiles les plus économiques de sa catégorie. De nombreux utilisateurs à la recherche de rentabilité ont acheté ce téléphone pour profiter de diverses fonctions sur le Redmi K70E. Alors comment définir une sonnerie personnalisée pour Redmi K70E ? Comment définir une sonnerie personnalisée pour Redmi K70E ? Pour définir une sonnerie d'appel entrant personnalisée pour Redmi K70E, vous pouvez suivre les étapes ci-dessous : Ouvrez l'application des paramètres de votre téléphone, recherchez l'option "Sons et vibrations" ou "Son" dans l'application des paramètres, puis cliquez sur "Sonnerie d'appel entrant". ou "Sonnerie du téléphone" ". Dans les paramètres de sonnerie

La différence et analyse comparative entre le langage C et PHP La différence et analyse comparative entre le langage C et PHP Mar 20, 2024 am 08:54 AM

Différences et analyse comparative du langage C et de PHP Le langage C et PHP sont tous deux des langages de programmation courants, mais ils présentent des différences évidentes sur de nombreux aspects. Cet article procédera à une analyse comparative du langage C et de PHP et illustrera les différences entre eux à travers des exemples de code spécifiques. 1. Syntaxe et utilisation : Langage C : Le langage C est un langage de programmation orienté processus, principalement utilisé pour la programmation au niveau système et le développement embarqué. La syntaxe du langage C est relativement simple et de bas niveau, peut exploiter directement la mémoire, et est efficace et flexible. Le langage C met l'accent sur l'exhaustivité du programme pour le programmeur

Comment utiliser l'extension d'image intelligente Xiaomi Mi 14 Ultra AI ? Comment utiliser l'extension d'image intelligente Xiaomi Mi 14 Ultra AI ? Mar 16, 2024 pm 12:37 PM

Le progrès des temps a rendu les revenus de nombreuses personnes de plus en plus élevés, et les téléphones mobiles qu'ils utilisent habituellement seront changés fréquemment. Le Xiaomi Mi 14 Ultra récemment lancé par Xiaomi doit être familier aux utilisateurs. La configuration des performances est très élevée, et elle. peut offrir aux utilisateurs plus Afin d'offrir une expérience confortable et fluide, les nouveaux téléphones mobiles rencontreront inévitablement de nombreuses fonctions qui ne sont pas utilisées. Par exemple, comment utiliser l'extension d'image intelligente Xiaomi 14UltraAI ? Venez jeter un oeil au tutoriel d'utilisation ci-dessous ! Comment utiliser l'extension d'image intelligente Xiaomi 14UltraAI ? Ouvrez d’abord Xiaomi 14Ultra, entrez dans l’album photo, sélectionnez l’image que vous souhaitez agrandir et entrez dans l’option d’édition de l’album photo. Cliquez sur Rotation de recadrage, cliquez sur Recadrer et cliquez sur Développement intelligent dans la sélection qui apparaît. Enfin, choisissez la manière d'agrandir l'image en fonction de vos propres besoins.

Comparaison et analyse des avantages et inconvénients des versions PHP7.2 et 5 Comparaison et analyse des avantages et inconvénients des versions PHP7.2 et 5 Feb 27, 2024 am 10:51 AM

Comparaison et analyse des avantages et des inconvénients de PHP7.2 et 5. PHP est un langage de script côté serveur extrêmement populaire et largement utilisé dans le développement Web. Cependant, PHP est constamment mis à jour et amélioré dans différentes versions pour répondre à l'évolution des besoins. Actuellement, PHP7.2 est la dernière version, qui présente de nombreuses différences et améliorations notables par rapport à la version précédente de PHP5. Dans cet article, nous comparerons les versions PHP7.2 et PHP5, analyserons leurs avantages et inconvénients et fournirons des exemples de code spécifiques. 1. PH des performances

See all articles