Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 24 Φεβ 2012, 22:27

Βασικά αντί για το fnmatch παίζει να βολεύει ακόμα περισσότερο το glob το οποίο χρησιμοποιεί εσωτερικά το fnmatch.

@clepto
Ti εννοείς? Ως value μπορείς να έχεις οτιδήποτε object σε βολεύει. Μπορείς πχ να έχεις nested dictionaries.
Κώδικας: Επιλογή όλων
a = {1: {"name": "Kostas", "surname": "Papadopoulos"},
2: {"name": "Giorgos", "surname": "Ioannou"}}

αντί για dict μπορείς να έχεις tuples και να παίρνεις αυτό που θες με indexes, namedtuples, instances μιας custom κλάσης κτλ.

edit.
Κάπου είχα διαβάσει ότι η os.walk() είχε κάτι προβλήματα, και ότι η os.path.walk() είναι προτιμότερη. Δε θυμάμαι λεπτομέρειες
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 24 Φεβ 2012, 22:30

θελω πχ να εχω ενα dict σε αυτη τη μορφη

Μορφοποιημένος Κώδικας: Επιλογή όλων
dict = { "a" : "a1", "a2", "a3", 
"b" : "b1", "b2", "b3"}


γινεται;

ειδα ότι μπορώ έτσι:
Μορφοποιημένος Κώδικας: Επιλογή όλων
a = {"b" : ["b1", "b2", "b3"]}

In [17]: a
Out[17]: {'b': ['b1', 'b2', 'b3']}

In [19]: a['b']
Out[19]: ['b1', 'b2', 'b3']

In [20]: for i in a['b']:
....: print i
....:
b1
b2
b3


αλλά πως μπορώ να προσθέσω και άλλο στοιχείο μετά;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 24 Φεβ 2012, 23:05

a["myvalue"] = "o" :)

Κώδικας: Επιλογή όλων
>>> a = {"a":1,"b":2,"c":3}
>>> a
{'a': 1, 'c': 3, 'b': 2}
>>> a["myvalue"] = "o"
>>> a
{'a': 1, 'c': 3, 'b': 2, 'myvalue': 'o'}


Εκτός κι αν εννοείς να προσθέσεις σε μια λίστα, οπόταν χρησιμοποιείς το .append():
Κώδικας: Επιλογή όλων
>>> b = {"mylist": [1,2,3]}
>>> b
{'mylist': [1, 2, 3]}
>>> b['mylist']
[1, 2, 3]
>>> b['mylist'].append(5)
>>> b['mylist']
[1, 2, 3, 5]
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 24 Φεβ 2012, 23:08

medigeek θέλω να βάλω πολλές τιμές σε μια value, παρατήρησε ότι όλες είναι στην b
Κώδικας: Επιλογή όλων
'b': ['b1', 'b2', 'b3']

εγω θελω να προσθεσω εκει μεσα!
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 24 Φεβ 2012, 23:28

τα dicts. είναι ζεύγη key-values. Τα keys πρέπει να είναι μοναδικά. Τα values μπορούν να είναι οποιοδήποτε αντικείμενο της python. Μπορούν να είναι λοιπόν είτε immutable όπως είναι ένα tuple (δεν μπορείς να το μεταλλάξεις) είτε mutable όπως είναι οι lists στις οποίες μπορείς να προσθέσεις αντικείμενα μέσω της append.

Κώδικας: Επιλογή όλων
my_dict = {"a": [1, 2, 3]}
print(type(my_dict["a"]))
my_dict["a"].append(4)
print(my_dict)
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό sokoban4ever » 25 Φεβ 2012, 03:02

clepto έγραψε:medigeek θέλω να βάλω πολλές τιμές σε μια value, παρατήρησε ότι όλες είναι στην b
Κώδικας: Επιλογή όλων
'b': ['b1', 'b2', 'b3']

εγω θελω να προσθεσω εκει μεσα!

κάνεις π.χ
Κώδικας: Επιλογή όλων
mydict['b'].append('b4')

και το 'b': ['b1', 'b2', 'b3']
θα γίνει 'b': ['b1', 'b2', 'b3','b4']
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 03 Μαρ 2012, 23:26

χρησιμοποιώ την encode('urf8', 'replace') με κατι unicode strings που έχουν μέσα ελληνικές λέξεις και το αποτέλεσμα που παίρνω είναι κάτι σαν "asdasd????"
όπου ???? ήταν τα ελληνικά...με το "ignore" δε τα βγάζει καν...

μπορώ να το διορθώσω κάπως;
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό medigeek » 04 Μαρ 2012, 05:04

Μπορείς να δώσεις ένα παράδειγμα;
Κάτι σαν αυτό;
Κώδικας: Επιλογή όλων
u"τεστ".encode('utf-8')
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό clepto » 04 Μαρ 2012, 18:14

εχω αυτο που ειναι str και ειναι το path
Κώδικας: Επιλογή όλων
/home/chris/yamp/ασδξ.mp3

και το σφαλμα:
Κώδικας: Επιλογή όλων
info = newitem.discover_uri("file://" + path)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 17: ordinal not in range(128)
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό sokoban4ever » 04 Μαρ 2012, 20:13

Δοκίμασε και κάνε το πρώτα unicode string πρίν το δώσεις στην discover_uri
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι