Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen

Überblick

Eine Zusammenfassung der typischen Operationen der Ruby Array- und Python-Liste.

Dies ist ein Artikel für Rubyist (Pythonista), der gerade angefangen hat, Python (Ruby) zu lernen.

Referenz: Klicken Sie hier für die C ++ - Version Zusammenfassung der Unterstützung für Ruby-C ++ - Array-Operationen

Voraussetzungen

Referenzinformationen

Methode

size

[1,2,3].size   #=> 3
len( [1,2,3] )   #=> 3

each

Schleife um das Element

[1,2,3,4,5].each do |x|
  puts 2*x    #=> 2,4,6,8,10
end
for x in [1,2,3,4,5]:
    print(2*x)

each_with_index

Drehen Sie die Schleife mit Index

[5,4,3,2,1].each_with_index do |x,idx|
  print "#{idx}:#{x}, "
end
# => 0:5, 1:4, 2:3, 3:2, 4:1,
for idx,x in enumerate( [5,4,3,2,1] ):
    print("{0}:{1}, ".format(idx,x), end="")

Sequenzen verbinden

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

push (<<)

Fügen Sie am Ende ein Element hinzu

a = [1,2]
a << 3
# a => [1,2,3]
a = [1,2]
a.append(3)
# a => [1,2,3]

map

[1,2,3].map {|x| 2*x }  #=> [2,4,6]
[ 2*x for x in [1,2,3] ]                 # => [2,4,6]
list( map( lambda x: 2*x, [1,2,3] ) )    # => [2,4,6]

find

[7,8,9,10,11].find {|x| x%5 == 0 }  #=> 10
[ x for x in [7,8,9,10,11] if x % 5 == 0 ][0]   #=> 10

--Zusatz: http://stackoverflow.com/questions/9868653/find-first-list-item-that-matches-criteria

next((x for x in [7,8,9,10,11] if x % 5 == 0), None)

find_all

[1,2,3,4,5].find_all {|x| x>3 }  #=> [4,5]
[ x for x in [1,2,3,4,5] if x > 3]     #=> [4,5]
list( filter( lambda x: x>3, [1,2,3,4,5] ) )    #=> [4,5]

sort

[4,1,3,2,5].sort  #=> [1,2,3,4,5]
sorted( [4,1,3,2,5] )   #=> [1,2,3,4,5]

sort_by

[4,1,2,3,5].sort_by {|x| (3-x).abs }  #=> [3,4,2,1,5]
sorted( [4,1,3,2,5], key= lambda x: abs(3-x) )

index

[5,1,4,2,3].index(2)  #=> 3
[5,1,4,2,3].index(2)  #=> 3

all?

[2,4,6,8].all? {|x| x % 2 == 0 }  #=> true
[2,4,6,9].all? {|x| x % 2 == 0 }  #=> false
all( x%2==0 for x in [2,4,6,8] )   #=> True
all( x%2==0 for x in [2,4,6,9] )   #=> False

sum

[1,3,5].inject(:+)   #=> 9
sum( [1,3,5] )

inject (reduce)

[1,2,3,4,5].inject(1) {|acc,x| acc*x }   #=> 120
[1,2,3,4,5].inject("") {|acc,x| acc + (x%2==0?'e':'o') }   #=> oeoeo
import functools
functools.reduce( lambda acc,x: acc*x, [1,2,3,4,5], 1 )
functools.reduce( lambda acc,x: acc+("e" if x%2==0 else "o") , [1,2,3,4,5], "" )

uniq

[5,1,1,2,3,5,5].uniq  #=> [5,1,2,3]
list( set( [5,1,1,2,3,5,5] ) )

li_uniq = []
for x in [5,1,1,2,3,5,5]:
  if x not in li_uniq:
    li_uniq.append(x)
li_uniq    #=> [5,1,2,3]

uniq {block}

[4,5,1,2,3,4,5].uniq {|x| x % 3 }   #=> [4,5,3]
li_uniq = []
set_uniq = set()
for x in [4,5,1,2,3,4,5]:
  if x % 3 not in set_uniq:
    li_uniq.append(x)
    set_uniq.add(x%3)
li_uniq                    #=> [4,5,3]

join

[1,5,3,2].join(":")  #=> "1:5:3:2"
":".join(map(str, [1,5,3,2]))

reverse

[1,2,3].reverse  #=> [3,2,1]
a = [1,2,3]
a.reverse!
a                #=> [3,2,1]
list( reversed([1,2,3]) )

a = [1,2,3]
a.reverse()
a                #=> [3,2,1]

group_by

["cat","bat","bear","camel","alpaca"].group_by {|x| x[0]}
# {"c"=>["cat", "camel"], "b"=>["bat", "bear"], "a"=>["alpaca"]}
d = {}
for x in ["cat","bat","bear","camel","alpaca"]:
    key = x[0]
    if key not in d:
        d[key] = []
    d[key].append(x)
d        # => {'c': ['cat', 'camel'], 'a': ['alpaca'], 'b': ['bat', 'bear']}

shuffle

[1,2,3,4,5,6,7].shuffle   #=> [2, 6, 4, 7, 5, 3, 1]
import random
a = [1,2,3,4,5,6,7]
random.shuffle(a)
a                       #=> [4, 5, 6, 2, 7, 1, 3]

Recommended Posts

Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
Zusammenfassung der Unterstützung von Hash-Operationen (Dictionary) für Ruby und Python
Zusammenfassung der Python-Indizes und -Slices
[Python] Operation der Aufzählung
Zusammenfassung der Unterschiede zwischen PHP und Python
Angeben des Bereichs von Ruby- und Python-Arrays
Ruby, Python und Map
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
Python und Ruby teilen sich
Zusammenfassung der Python-Verzeichnisoperationen
Zusammenfassung der Python-Argumente
E / A-bezogene Zusammenfassung von Python und Fortan
Über flache und tiefe Kopien von Python / Ruby
[Python] Array-Slice-Operation
Vergleich von Python und Ruby (Environment / Grammar / Literal Edition)
Grundlegende Bedienung von Python Pandas Series und Dataframe (1)
Python - Erläuterung und Zusammenfassung der Verwendung der 24 wichtigsten Pakete
[Python] Typfehler: Zusammenfassung der Ursachen und Abhilfemaßnahmen für 'Kein Typ'
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Zusammenfassung der Datumsverarbeitung in Python (Datum / Uhrzeit und Datum)
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
Python auf Ruby und wütend Ruby auf Python
Python und Ruby Slice Memo
Standardeingabe / Zusammenfassung / Python, Ruby
Ruby- und Python-Syntax ~ branch ~
Quellinstallation und Installation von Python
[Python] Zusammenfassung zum Abrufen von Listen und Wörterbuchelementen
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Zusammenfassung der Unterschiede zwischen Ruby on Rails und Django ~ Basics ~
Umgebungskonstruktion von Python und OpenCV
Unterschied zwischen Ruby und Python Split
Die Geschichte von Python und die Geschichte von NaN
[Python] Operationsnotiz von Pandas DataFrame
Installation von SciPy und matplotlib (Python)
Scraping mit Node, Ruby und Python
Eine kurze Zusammenfassung der Python-Sammlung
[Python] Woche 1-3: Nummerntyp und Operation
Dies und das von Python-Eigenschaften
Vergleichen Sie Python- und JavaScript-Array-Schleifen
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Reputation von Python-Büchern und Nachschlagewerken
[OpenCV; Python] Zusammenfassung der Funktion findcontours
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Zusammenfassung der Unterschiede zwischen Python und PHP (Vergleichstabelle der Hauptelemente)
Installation von Visual Studio Code und Installation von Python
[Python] Zusammenfassung der Verwendung von Pandas
Python-Zusammenfassung
Unterschiede zwischen Ruby und Python im Umfang
Python + Selen Zusammenfassung der häufig verwendeten Operationsmethoden
Extraktion von tweet.js (json.loads und eval) (Python)
Python> Link> Initialisierung und Zuweisung von 2D-Arrays
Zusammenfassung verschiedener for-Anweisungen in Python
Verbinde viel Python oder und und
Python-Zusammenfassung