उसी लंबाई की सूचियों के साथ ऐरे पर zip_longest। समझना - पायथन, पायथन-3.x, itertools, splat

मेरे पास एक ऐरे है जिसमें सभी समान लंबाईएं हैं। उन सभी सूचियों को एक .csv-file में लिखा जाना चाहिए। कोड के एक टुकड़े का उपयोग करके मैंने पाया है कि यह बहुत अच्छी तरह से काम करता है। यहां कोड:

ag=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

export_data = zip_longest(*ag, fillvalue = "")

with open("motion_profile.csv", "w", encoding="ISO-8859-1", newline="") as myfile:
wr = csv.writer(myfile, delimiter=",")
wr.writerow(("m","ax","ay","az","sx","sy","sz"))
wr.writerows(export_data)
myfile.close()

मैं मूल अवधारणा को समझता हूं zip तथा zip_longest जब मेरे पास दो एरे होते हैं जिनका मैं इसका उपयोग करता हूं। लेकिन मैं सिर्फ अपने सिर को लपेट नहीं सकता जो यह एक सरणी के साथ करता है export_data = zip_longest(*ag, fillvalue = "")

वास्तव में क्या होता है ag अगर मैं उपयोग करता हूँ zip या zip_longest इस पर?

चूंकि मेरे पास दो एरे नहीं हैं क्योंकि यह किसके खिलाफ ज़िप करता है?

zip_longest प्रत्येक सूची में लागू किया जा रहा है ag इसलिए *। यह है कि मैं इसके साथ कितना दूर मिला है।

क्या कोई मुझे उस के माध्यम से चल सकता है?

उत्तर:

जवाब के लिए 2 № 1

zip() जरूरी नहीं कि दो सरणी लें; यह एक मनमाना संख्या arrays (iterables) लेता है स्थितित्मक तर्क के रूप में

इसे छोटे चरणों में लेना,

  • *ag नेस्टेड सूची को अनपैक करता है। ध्यान दें कि यह केवल "एक स्तर नीचे" अनपैक करता है। आप प्रभावी रूप से 4 सूचियों के साथ छोड़ दिया है, [1, 2, 3], ... [10, 11, 12], अलग-अलग तत्वों के रूप में जो स्थितित्मक तर्क बन जाएंगे।
  • वहां से, zip() अपेक्षित व्यवहार करता है (आप इसे कई अनपॅक किए गए सूचियों को पार कर रहे हैं)।

आप समानता देख सकते हैं:

>>> i, j, k = zip(*ag)

>>> i
(1, 4, 7, 10)
>>> k
(3, 6, 9, 12)

>>> i2, j2, k2 = zip([1,2,3],[4,5,6],[7,8,9],[10,11,12])
#     |_______|_______|________|
#                 i2

>>> i2
(1, 4, 7, 10)
>>> k2
(3, 6, 9, 12)

दूसरे शब्दों में, उन चार उप-सूचियों को चार स्थितित्मक तर्क के रूप में पारित किया जाता है zip()

कॉल सिंटैक्स के संदर्भ में, itertools.zip_longest(*iterables, fillvalue=None) बहुत समान है; यह सिर्फ एक कीवर्ड तर्क अंत तक tacked है। जिस तरह से उप-सूचियां पारित की जाती हैं वह प्रभावी रूप से वही होती है।


संबंधित सवाल
सबसे लोकप्रिय