田辺  明美

田辺 明美

1660364460

Python リストのインデックス作成とスライスのガイド

このチュートリアルでは、実践的な演習を使用して、Python リストのインデックス作成とスライスについて学習します。ほとんどすべての Python 開発者は、リストについて学ぶ早い段階でインデックス作成に遭遇します。 

おそらく既にご存じのとおり、Python のリストには 0 から始まるインデックスがあります。つまりmovies、たとえばという名前のリストが与えられた場合、movies[0] は ist の最初の要素をmovies[len(movies)-1] 返し、一方、最後の要素を返します。

これまでのところ、ここで見るものは何もありません。はい、初心者にとって、10 個の項目のリストを 0 から 9 まで数えることは、最初は少し奇妙に思えます。しかし、これは Python だけに限ったことではありません。現在使用されている上位のプログラミング言語のほとんどは、同じ方法でインデックスを作成しています。これらには、C、C++、Java、C#、および JavaScript が含まれます。

Python でのインデックス作成について書く価値があるのは、他の言語との重複ではなく、それが際立っている方法です。Python インデックスのいくつかの機能により、他の言語とは異なります。

  • インデックス作成は、Python のループからほとんど追放されました。それらはまだ利用可能ですが、for ループで使用することは標準ではありません。
  • -1 で始まる負のインデックスを使用して、シーケンスの末尾からインデックスを作成できます。-1 は最後の項目を返し、-2 は最後から 2 番目の項目を返します。
  • サブシーケンスの選択には、強力な拡張形式のインデックス作成であるスライスを使用できます。スライスを負のインデックスと組み合わせて使用​​すると、シーケンスの逆を取得できます。スライスを使用して、さまざまなポイントでシーケンスをサンプリングすることもできます。

Python でのインデックス作成とスライスに慣れていない場合、これらの箇条書きは非常に抽象的であると感じるかもしれません。しかし、心配しないでください。この記事では、これが実際にどのように機能するかの例をいくつか掘り下げます。さらに、学んだことを強化するために、最後にいくつかの演習を含めました。

単純な正のインデックス付け

この機能については既にご存じかもしれませんが、すべてが同じ場所から始まることを確認するために、リスト、タプル、および文字列を使用した正のインデックス付けの簡単な例から始めましょう。ここに示すように、インデックスは、シーケンスの名前の後に配置する角括弧で囲まれた単純な数字です。

# Simple positive indexing, zero based

numbers = [42, 1941, 1066, 1969]
indexes = "Super simple!"
stooges = ("Moe", "Larry", "Curly")

print(numbers[0])

last_index = len(indexes) - 1
print(indexes[last_index])
print(f"The funniest stooge was {stooges[2]}.")

出力:

42
!
The funniest stooge was Curly.

繰り返しますが、すべての場合において、シーケンスの下限は 0 であり、上限はシーケンスの長さから 1 を引いたものです。この範囲外のインデックスを使用すると、Python で IndexOutOfBounds エラーが発生します。

この時点で、Python がゼロから始まるインデックスを使用していることはわかりました。これは、Java、C、C#、または JavaScript でコーディングしたことがある場合はおなじみでしょう。次に、Python だけの楽しみに取り掛かりましょう。

すべてのインデックスと同様に、変更可能なシーケンス (最も重要なのはリスト型) の場合、インデックスを使用して値を設定したり、値を取得したりすることもできます。

numbers = [1,2,8,4]
print(numbers)

# Change third item in the list
numbers[2] = 3
print(numbers)

出力:

[1, 2, 8, 4]
[1, 2, 3, 4]

Python での負のインデックス付け

Python での負のインデックス付けとは、負の数値インデックスを使用して、リスト、タプル、または文字列などのシーケンスにアクセスすることを指します。負のインデックス付けは、シーケンスの最後から開始し、逆方向にカウントします。したがって、インデックスが -1 の最後の要素を取得できます。最後から 2 番目の要素には、-2 などを使用してアクセスできます。

負のインデックスを使用すると、可変長のリストを操作するときに役立ちます。リストの長さを事前に知らなくても、リストの最後から要素にアクセスできます。

正と負のインデックスを使用して、Zen of Python の行から最後の文字を取得しましょう。

saying = "Simple is better than complex"

# Get the last character using positive indexing
print(saying[len(saying) - 1])

# Using negative indexing.
print(saying[-1])

出力:

x
x

負のインデックス付けは、スライスと組み合わせるとさらに便利になり、シーケンスを逆にするためにも使用できます。たとえば、オブジェクトのリストがあり、リストの並べ替え順序を逆にしたい場合は、負のインデックスを使用できます。

Python の For ループでインデックスを取得する

上で述べたように、一般に、インデックスは Python ループでは必要ありません。Java、C#、および (C++ 11 以降) C++ を含む多くの言語には、このような構文があります。それにもかかわらず、これらの言語では、インデックスを明示的に使用する必要がある C で見られるような for ループの使用に戻すことができます。興味がある場合は、C でこれを行う方法を次に示します。

#include <stdio.h>

int main(void) {
    const int LEN = 3;
    char chars[LEN] = {'A', 'B', 'C'};
    for(int i = 0; i < LEN; i++) {
        printf("Found a char at index %d: %c\n", i, chars[i]);
    }
}

出力:

Found a char at index 0: A
Found a char at index 1: B
Found a char at index 2: C

もちろん、Python では、リストをもっと簡単に反復処理できるため、通常は次のようにします。

chars = ['A', 'B', 'C']
for char in chars:
    print(char)

出力:

A
B
C

通常、この単純さは良いことです — もちろん、C で行ったようにインデックスを使用したい、または使用する必要がある場合を除きます。心配する必要はありません。enumerate 関数を使用すると、インデックスと値の両方を同時に取得できます。Cコードが生成するのと同じ出力を得る方法は次のとおりです。

chars = ['A', 'B', 'C']
for index, char in enumerate(chars):
    print(f"Found a char at index {index}: {char}")

Python Slices: ステロイドの索引

Python のインデックス作成が他の言語と大きく異なる機能を挙げなければならないとしたら、それはスライス機能でしょう。スライスはインデックスに似ていますが、インデックスでは 1 つの要素を取得できますが、スライス式では一度に多くの要素を取得または設定できます。インデックスと同様に、式は角括弧で囲まれたシーケンス名の後に配置され、次の基本的な構文を持ちます。

sequence[start:stop:step]

さまざまなステップの意味は次のとおりです。

  • start の値は、スライスの開始を表す整数です。省略した場合は、デフォルトでゼロ、つまりシーケンスの先頭になります。
  • の値は、必要な最後のインデックスを表す整数に 1 を加えたものです。省略した場合、デフォルトでシーケンスの長さに設定されますが、これはインデックスの 1 つ後ろにあるため、「停止」のデフォルトは実質的にシーケンスの最後になります。
  • 最後のコロンとシーケンス値は省略されることが多く、その場合はデフォルトで 1 になります。この値が負の場合、スライスは逆の順序で抽出されます。

次の例は、これをより明確に示しています。正の順序でスライスする例から始めましょう。

numbers = [1,2,3,4,5]

# Indexes zero to two, with zero explicit or not
print("Indexes zero to two")
print(numbers[0:3]) 
print(numbers[:3]) # Indexes zero to two, same as above

# Indexes 3 to end of the list, explicit or not
print("\nIndexes 3 to end of the list")
print(numbers[3:len(numbers)]) 
print(numbers[3:]) 

# Make a shallow copy of the list
print("\nList copy")
print(numbers[:])

# Step by 2, i.e., get every other number
print("\nStep by two:")
print(numbers[::2])

出力:

Indexes zero to two:
[1, 2, 3]
[1, 2, 3]

Indexes 3 to end of the list:
[4, 5]
[4, 5]

List copy:
[1, 2, 3, 4, 5]

Step by two:
[1, 3, 5]

文字列の一部を取得するために、「部分文字列」のようなメソッドの代わりにスライスがよく使用されます。たとえば、文字列から固定長のプレフィックスを削除するには、非常に便利です。

# Remove the "id-" from the list:
order_items = ["id-999", "id-19098", "id-2"]
cleaned = [item[3:] for item in order_items]
print(cleaned)

出力:

['999', '19098', '2']

逆方向のスライスは、負のステップ値を使用する単純な問題です。負の数を使用すると、開始値は終了値よりも大きくなります。

numbers = [1,2,3,4,5]

print(numbers[::-1])
print(numbers[4:2:-1])

出力:

[5, 4, 3, 2, 1]
[5, 4]

逆にスライスすることは、既存のリストのサブセットを操作するよりもはるかに一般的ではありませんが、Python のインタビューの質問としてよく使われs = 'Life of Brian'ます。ループで実行するのはせいぜい「B」の答えです。s[::-1]おそらくあなたのインタビュアーが念頭に置いていることです。

スライス時の代入動作

スライスに代入すると、スライスが別のリストまたは反復可能なオブジェクトの内容に置き換えられます。サイズに関して非常に柔軟であるという意味で、検索と置換のように動作します。追加されるアイテムの数は、スライス内のアイテムの数と一致する必要はありません。リストは、新しい要素に合わせて拡大または縮小します。

例えば:

count_to_ten = [num for num in range(1,11)]
count_to_ten[3:6] = [20, 30]
count_to_ten
count_to_ten[6:8] = [100, 200, 300, 400]
print(count_to_ten)

出力:

[1, 2, 3, 20, 30, 7, 100, 200, 300, 400, 10]

特に文字列の場合、スライスを使用してセグメントを置き換えることは可能ですが、多くの場合、「置換」メソッドを使用する方がはるかに便利です。

Python のインデックス作成とスライスの演習

Python でのインデックス作成とスライスに関するいくつかの演習とサンプル問題を次に示します。これらを試してみてください。

  • 以下のコードは何を生成し、何を行っているか (必要かどうかを確認するために実行できます) インポート以外のすべてを print ステートメントと簡潔なスライス式に置き換えることはできますか?
from string import ascii_uppercase
subset = ""
for idx, letter in enumerate(ascii_uppercase):
    if idx %4 == 0:
        subset = subset + letter
print(subset)
  • 上記でインポートした ascii_upercase を指定して、スライス式を使用してアルファベットを逆方向に出力します。
  • 下の干し草の山に針があります 文字列から抽出します スライス式に加えてindex、str クラスのメソッドとlen関数が必要になります。
example = "Hay hay hay hey hey needle nah nah nah nah, hey hey, goodbye."
  • スライス式を使用して、以下のリストをスライスして、[9,6,3] のリストを生成します。
count_to_ten = [num for num in range(1,11)]
print(count_to_ten)
  • 次のコードが与えられた場合、tokens 配列から単語 shrubbery にインデックスを付ける簡潔な式を記述します。
tokens = "Is there anywhere in this town where we could buy a shrubbery".split(" ")
print(tokens)
  • インデックス値を使用して、リストまたはその他のシーケンス内のアイテムの場所を検索できます。アイテムのインデックスを返します。以下のコードを考えると、何が返されると思いますclaim.index("Python")か?
claim = "The best Python examples are on CodeSolid.com!".split(" ")
print(claim)
  • 次のコードを考えると、最初の print ステートメントは何をしますか? 2 番目の print ステートメントは何をしますか?
greeting = "Hello"
print(greeting[4])
print(greeting[5])
  • 以下の「紹介」で騎士をどのように見つけることができますか?

序文=「俺たちはにと言う騎士だ!」

実行例 (CoLab)

ソリューションを見る

元の記事のソース: https://codesolid.com

#python

What is GEEK

Buddha Community

Python リストのインデックス作成とスライスのガイド
Ray  Patel

Ray Patel

1619510796

Lambda, Map, Filter functions in python

Welcome to my Blog, In this article, we will learn python lambda function, Map function, and filter function.

Lambda function in python: Lambda is a one line anonymous function and lambda takes any number of arguments but can only have one expression and python lambda syntax is

Syntax: x = lambda arguments : expression

Now i will show you some python lambda function examples:

#python #anonymous function python #filter function in python #lambda #lambda python 3 #map python #python filter #python filter lambda #python lambda #python lambda examples #python map

Shardul Bhatt

Shardul Bhatt

1626775355

Why use Python for Software Development

No programming language is pretty much as diverse as Python. It enables building cutting edge applications effortlessly. Developers are as yet investigating the full capability of end-to-end Python development services in various areas. 

By areas, we mean FinTech, HealthTech, InsureTech, Cybersecurity, and that's just the beginning. These are New Economy areas, and Python has the ability to serve every one of them. The vast majority of them require massive computational abilities. Python's code is dynamic and powerful - equipped for taking care of the heavy traffic and substantial algorithmic capacities. 

Programming advancement is multidimensional today. Endeavor programming requires an intelligent application with AI and ML capacities. Shopper based applications require information examination to convey a superior client experience. Netflix, Trello, and Amazon are genuine instances of such applications. Python assists with building them effortlessly. 

5 Reasons to Utilize Python for Programming Web Apps 

Python can do such numerous things that developers can't discover enough reasons to admire it. Python application development isn't restricted to web and enterprise applications. It is exceptionally adaptable and superb for a wide range of uses.

Robust frameworks 

Python is known for its tools and frameworks. There's a structure for everything. Django is helpful for building web applications, venture applications, logical applications, and mathematical processing. Flask is another web improvement framework with no conditions. 

Web2Py, CherryPy, and Falcon offer incredible capabilities to customize Python development services. A large portion of them are open-source frameworks that allow quick turn of events. 

Simple to read and compose 

Python has an improved sentence structure - one that is like the English language. New engineers for Python can undoubtedly understand where they stand in the development process. The simplicity of composing allows quick application building. 

The motivation behind building Python, as said by its maker Guido Van Rossum, was to empower even beginner engineers to comprehend the programming language. The simple coding likewise permits developers to roll out speedy improvements without getting confused by pointless subtleties. 

Utilized by the best 

Alright - Python isn't simply one more programming language. It should have something, which is the reason the business giants use it. Furthermore, that too for different purposes. Developers at Google use Python to assemble framework organization systems, parallel information pusher, code audit, testing and QA, and substantially more. Netflix utilizes Python web development services for its recommendation algorithm and media player. 

Massive community support 

Python has a steadily developing community that offers enormous help. From amateurs to specialists, there's everybody. There are a lot of instructional exercises, documentation, and guides accessible for Python web development solutions. 

Today, numerous universities start with Python, adding to the quantity of individuals in the community. Frequently, Python designers team up on various tasks and help each other with algorithmic, utilitarian, and application critical thinking. 

Progressive applications 

Python is the greatest supporter of data science, Machine Learning, and Artificial Intelligence at any enterprise software development company. Its utilization cases in cutting edge applications are the most compelling motivation for its prosperity. Python is the second most well known tool after R for data analytics.

The simplicity of getting sorted out, overseeing, and visualizing information through unique libraries makes it ideal for data based applications. TensorFlow for neural networks and OpenCV for computer vision are two of Python's most well known use cases for Machine learning applications.

Summary

Thinking about the advances in programming and innovation, Python is a YES for an assorted scope of utilizations. Game development, web application development services, GUI advancement, ML and AI improvement, Enterprise and customer applications - every one of them uses Python to its full potential. 

The disadvantages of Python web improvement arrangements are regularly disregarded by developers and organizations because of the advantages it gives. They focus on quality over speed and performance over blunders. That is the reason it's a good idea to utilize Python for building the applications of the future.

#python development services #python development company #python app development #python development #python in web development #python software development

Art  Lind

Art Lind

1602968400

Python Tricks Every Developer Should Know

Python is awesome, it’s one of the easiest languages with simple and intuitive syntax but wait, have you ever thought that there might ways to write your python code simpler?

In this tutorial, you’re going to learn a variety of Python tricks that you can use to write your Python code in a more readable and efficient way like a pro.

Let’s get started

Swapping value in Python

Instead of creating a temporary variable to hold the value of the one while swapping, you can do this instead

>>> FirstName = "kalebu"
>>> LastName = "Jordan"
>>> FirstName, LastName = LastName, FirstName 
>>> print(FirstName, LastName)
('Jordan', 'kalebu')

#python #python-programming #python3 #python-tutorials #learn-python #python-tips #python-skills #python-development

Art  Lind

Art Lind

1602666000

How to Remove all Duplicate Files on your Drive via Python

Today you’re going to learn how to use Python programming in a way that can ultimately save a lot of space on your drive by removing all the duplicates.

Intro

In many situations you may find yourself having duplicates files on your disk and but when it comes to tracking and checking them manually it can tedious.

Heres a solution

Instead of tracking throughout your disk to see if there is a duplicate, you can automate the process using coding, by writing a program to recursively track through the disk and remove all the found duplicates and that’s what this article is about.

But How do we do it?

If we were to read the whole file and then compare it to the rest of the files recursively through the given directory it will take a very long time, then how do we do it?

The answer is hashing, with hashing can generate a given string of letters and numbers which act as the identity of a given file and if we find any other file with the same identity we gonna delete it.

There’s a variety of hashing algorithms out there such as

  • md5
  • sha1
  • sha224, sha256, sha384 and sha512

#python-programming #python-tutorials #learn-python #python-project #python3 #python #python-skills #python-tips

How To Compare Tesla and Ford Company By Using Magic Methods in Python

Magic Methods are the special methods which gives us the ability to access built in syntactical features such as ‘<’, ‘>’, ‘==’, ‘+’ etc…

You must have worked with such methods without knowing them to be as magic methods. Magic methods can be identified with their names which start with __ and ends with __ like init, call, str etc. These methods are also called Dunder Methods, because of their name starting and ending with Double Underscore (Dunder).

Now there are a number of such special methods, which you might have come across too, in Python. We will just be taking an example of a few of them to understand how they work and how we can use them.

1. init

class AnyClass:
    def __init__():
        print("Init called on its own")
obj = AnyClass()

The first example is _init, _and as the name suggests, it is used for initializing objects. Init method is called on its own, ie. whenever an object is created for the class, the init method is called on its own.

The output of the above code will be given below. Note how we did not call the init method and it got invoked as we created an object for class AnyClass.

Init called on its own

2. add

Let’s move to some other example, add gives us the ability to access the built in syntax feature of the character +. Let’s see how,

class AnyClass:
    def __init__(self, var):
        self.some_var = var
    def __add__(self, other_obj):
        print("Calling the add method")
        return self.some_var + other_obj.some_var
obj1 = AnyClass(5)
obj2 = AnyClass(6)
obj1 + obj2

#python3 #python #python-programming #python-web-development #python-tutorials #python-top-story #python-tips #learn-python