bpo-43423 Fix IndexError in subprocess _communicate function (GH-24777)

Check to make sure stdout and stderr are not empty before selecting an item from them in Windows subprocess._communicate.

Co-authored-by: Gregory P. Smith <greg@krypto.org>
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index e4ca5f5..d375514 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1535,10 +1535,8 @@ def _communicate(self, input, endtime, orig_timeout):
                 self.stderr.close()
 
             # All data exchanged.  Translate lists into strings.
-            if stdout is not None:
-                stdout = stdout[0]
-            if stderr is not None:
-                stderr = stderr[0]
+            stdout = stdout[0] if stdout else None
+            stderr = stderr[0] if stderr else None
 
             return (stdout, stderr)