On 21/05/19 8:40 PM, Paul Moore wrote:
On Tue, 21 May 2019 at 09:25, Frank Millman <fr...@chagford.com> wrote:
On 2019-05-21 9:42 AM, Madhavan Bomidi wrote:
Hi,
I need to create an array as below:
tempStr = year+','+mon+','+day+','+str("{:6.4f}".format(UTCHrs[k]))+','+ \
str("{:9.7f}".format(AExt[k,0]))+','+str({:9.7f}".format(AExt[k,1]))+','+ \
str("{:9.7f}".format(AExt[k,2]))+','+str("{:9.7f}".format(AExt[k,3]))+','+ \
str("{:9.7f}".format(AExt[k,4]))+','+str("{:9.7f}".format(AExt[k,5]))+','+ \
str("{:9.7f}".format(AExt[k,6]))+','+str("{:9.7f}".format(AExt[k,7]))+','+ \
str("{:9.7f}".format(AExt[k,8]))+','+str("{:9.7f}".format(AExt[k,9]))
k is a row index
Can some one suggest me how I can iterate the column index along with row index
to concatenate the string as per the above format?
Thanks in advance
The following (untested) assumes that you are using a reasonably
up-to-date Python that has the 'f' format operator.
tempStr = f'{year},{mon},{day},{UTCHrs[k]:6.4f}'
for col in range(10):
tempStr += f',{AExt[k, col]:9.7f}'
As a minor performance note (not really important with only 10 items,
but better to get into good habits from the start):
temp = [f'{year},{mon},{day},{UTCHrs[k]:6.4f}']
for col in range(10):
temp.append(f',{AExt[k, col]:9.7f}')
tempStr = ''.join(tempStr)
Repeated concatenation of immutable strings (which is what Python has)
is O(N**2) in the number of chunks added because of the need to
repeatedly copy the string.
A more pythonic approach might be to eschew the "k is a row index" and
resultant range(), by gathering the temperature readings into a
list/tuple (tuple unpacking at read-step or zip(), as appropriate). The
point of which (hah!) is to get rid of "pointers", and replace the
'algebra' with more readable code.
The collection can then be processed into the string using .append()
and/or .join(), perhaps with a list comprehension/generator...
--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list